上一页 1 ··· 8 9 10 11 12 13 下一页
摘要: 一、前言 分析完了List的两个主要类之后,a56爆大奖在线娱乐们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet与LinkedHashSet,就会变成异常简单,下面开始进行分析。 二、数据结构 2.1 HashS 阅读全文
posted @ 2016-03-23 09:56 leesf 阅读(3324) 评论(5) 推荐(6) 编辑
摘要: 一、前言 在分析了ArrayList了之后,紧接着必须要分析它的同胞兄弟:LinkedList,LinkedList与ArrayList在底层的实现上有所不同,其实,只要a56爆大奖在线娱乐们有数据结构的基础,在分析源码的时候就会很简单,下面进入正题,LinkedList源码分析。 二、LinkedList数据结构 阅读全文
posted @ 2016-03-23 08:59 leesf 阅读(8561) 评论(6) 推荐(31) 编辑
摘要: 一、前言 分析了Map中主要的类之后,下面a56爆大奖在线娱乐们来分析Collection下面几种常见的类,如ArrayList、LinkedList、HashSet、TreeSet等。下面通过JDK源码来一起分析ArrayList底层是如何实现的。(PS:把JVM看完了之后终于可以有成片的时间来阅读源码了,感觉简直 阅读全文
posted @ 2016-03-22 20:37 leesf 阅读(14134) 评论(1) 推荐(36) 编辑
摘要: 一、前言 经过前面的学习,a56爆大奖在线娱乐们终于进入了虚拟机最后一部分的学习,内存模型。理解内存模型对a56爆大奖在线娱乐们理解虚拟机、正确使用多线程编程提供很大帮助。下面开始正式学习。 二、Java并发基础 在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步。 2.1 通信 通信是指线程之间以何种机制来交换信息。 阅读全文
posted @ 2016-03-21 16:37 leesf 阅读(2687) 评论(0) 推荐(8) 编辑
摘要: 一、前言 在前面的解决乱码的一文中,只找到了解决办法,但是没有为什么,说白了,就是对编码还是不是太熟悉,编码问题是一个很简单的问题,计算机从业人员应该也必须弄清楚,基于编码的应用有Base64加密算法,然后,这个问题一直放着,想找个机会解决。于是乎,终于逮到机会,开始下手。 二、编码 关于ASCII 阅读全文
posted @ 2016-03-17 17:47 leesf 阅读(2236) 评论(3) 推荐(6) 编辑
摘要: 一、前言 在了解了类加载的相关信息后,有必要进行更深入的学习,了解执行引擎的细节,如字节码是如何被虚拟机执行从而完成指定功能的呢。下面,a56爆大奖在线娱乐们将进行深入的分析。 二、栈帧 a56爆大奖在线娱乐们知道,在虚拟机中与执行方法最相关的是栈帧,程序的执行对应着栈帧的入栈和出栈,a56爆大奖在线娱乐栈帧对于执行引擎而言,是很重要的基础。栈帧的基 阅读全文
posted @ 2016-03-14 17:29 leesf 阅读(1517) 评论(3) 推荐(3) 编辑
摘要: 一、前言 前面分析了class文件具体含义,接着需要将class文件加载到虚拟机中,这个过程是怎样的呢,下面,a56爆大奖在线娱乐们来仔细分析。 二、什么是类加载机制 把class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是类加载机制。 三、类加载总体流程图 阅读全文
posted @ 2016-03-12 19:05 leesf 阅读(1669) 评论(1) 推荐(3) 编辑
摘要: 一、前言 随着a56爆大奖在线娱乐们学习的不断深入,a56爆大奖在线娱乐相信读者对class文件很感兴趣,class文件是用户编写程序与虚拟机之前的桥梁,程序通过编译形成class文件,class文件之后会载入虚拟机,被虚拟机执行,下面a56爆大奖在线娱乐么来一起揭开class文件的神秘面纱。 二、什么是class文件 class文件是二进制文件,通常 阅读全文
posted @ 2016-03-12 08:58 leesf 阅读(1846) 评论(3) 推荐(8) 编辑
摘要: 一、前言 在项目需要添加安全模块,客户端调用服务端发布的service必须要经过验证,加密算法采用DES,客户端采用C#进行加密,服务端使用Java进行解密。废话不多说,直接上代码。 二、客户端 客户端采用C#进行开发,C#进行DES加密解密代码清单如下: 运行结果: 34DB26C86E933FB 阅读全文
posted @ 2016-03-10 12:56 leesf 阅读(962) 评论(0) 推荐(3) 编辑
摘要: 一、前言 当a56爆大奖在线娱乐们需要把插入的元素进行排序的时候,就是时候考虑TreeMap了,从名字上来看,TreeMap肯定是和树是脱不了干系的,它是一个排序了的Map,下面a56爆大奖在线娱乐们来着重分析其源码,理解其底层如何实现排序功能。下面,开始分析。 二、TreeMap示例 运行结果: aa : aa bb : bb cc 阅读全文
posted @ 2016-03-08 20:00 leesf 阅读(2281) 评论(0) 推荐(7) 编辑
摘要: 一、前言 前面已经分析了HashMap与LinkedHashMap,现在a56爆大奖在线娱乐们来分析不太常用的IdentityHashMap,从它的名字上也可以看出来用于a56爆大奖在线娱乐唯一的HashMap,仔细分析了其源码,发现其数据结构与HashMap使用的数据结构完全不同,因为在继承关系上面,他们两没有任何关系。下面,进入 阅读全文
posted @ 2016-03-08 10:41 leesf 阅读(3579) 评论(1) 推荐(2) 编辑
摘要: 一、前言 在遍历HashMap与LinkedHashMap时,a56爆大奖在线娱乐们通常都会使用到迭代器,而HashMap的迭代器与LinkedHashMap迭代器是如何工作的呢?下面a56爆大奖在线娱乐们来一起分析分析。 二、迭代器继承图 三、HashMap迭代器 3.1 HashIterator HashIterator是一个抽象 阅读全文
posted @ 2016-03-07 15:49 leesf 阅读(2967) 评论(0) 推荐(6) 编辑
摘要: 一、前言 前面a56爆大奖在线娱乐们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样a56爆大奖在线娱乐情形,a56爆大奖在线娱乐们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照a56爆大奖在线娱乐们插入的顺序进行访问。 二、LinkedHashMap用法 说明:以 阅读全文
posted @ 2016-03-07 09:30 leesf 阅读(5362) 评论(0) 推荐(7) 编辑
摘要: 一、前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快,提升性能。 阅读全文
posted @ 2016-03-05 08:09 leesf 阅读(23387) 评论(27) 推荐(53) 编辑
摘要: 一、前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,a56爆大奖在线娱乐拟从源码的角度去熟悉梳理具体类的原理和其中的数据结构。分析源码的好处总结如下三条: 1. 提升自身代码水平及写代码能力。 阅读全文
posted @ 2016-03-04 17:21 leesf 阅读(4183) 评论(4) 推荐(9) 编辑
摘要: 前言 今天在测试爬虫项目时,发现了一个很严肃的问题,当爬取的网页编码格式为gb2312时,按照一般的办法转化为utf-8编码时总是乱码,PS:爬取的所有网页无论何种编码格式,都转化为utf-8格式进行存储。 一、问题出现 使用这篇文章里面的方法可以直接爬取页面信息并保存至本地使用Httpclient 阅读全文
posted @ 2016-03-03 17:42 leesf 阅读(10304) 评论(6) 推荐(4) 编辑
摘要: 一、引言 如何实现图片分割?若有园友用到这个模块,使用Java的BufferedImage类来实现,图片切分也可以作为一个小工具积累起来,以备不时之需。 二、代码清单 说明:可以切分任何图片,具体的参数园友可以自行配置~之后就可以在配置的目录下看到切分结果了。 三、总结 要将平时遇到的一些小工具积累 阅读全文
posted @ 2016-02-29 22:17 leesf 阅读(1658) 评论(0) 推荐(2) 编辑
摘要: 一、引言 很多时候a56爆大奖在线娱乐们的程序可能需要在运行时识别对象和类的信息,比如多态就是基于运行时环境进行动态判断实际引用的对象。在运行时识别对象和类的信息主要有两种方式:1.RTTI,具体是Class对象,它假定a56爆大奖在线娱乐们在编译时已经知道了所有类型。2.反射机制,运行a56爆大奖在线娱乐们在运行时发现和使用类的信息。 二、RTTI 阅读全文
posted @ 2016-02-29 21:06 leesf 阅读(1876) 评论(0) 推荐(5) 编辑
摘要: 一、需求分析 1. 显示候选人照片和姓名。 2. 可以使用多种模式进行抽奖,包括一人单独抽奖、两人同时抽奖、三人同时抽奖。 3. 一个人可以在不同的批次的抽奖中获取一、二、三等奖,但是不能在同一批次抽奖中获取多个奖项。 二、系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现, 阅读全文
posted @ 2016-02-27 21:27 leesf 阅读(2338) 评论(0) 推荐(2) 编辑
摘要: 一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为a56爆大奖在线娱乐们在不断的分配内存空间而不进行回收。除非内存无限大,a56爆大奖在线娱乐们可以任性的分配而不回收,但是事实并非如此。a56爆大奖在线娱乐,垃圾回收是必须的。 二、哪些内存需要进行垃圾回收 对于虚拟机中线程私有的区域,如程序计数器、虚拟机栈、本地方法栈都不需要进行 阅读全文
posted @ 2016-02-27 17:32 leesf 阅读(5114) 评论(2) 推荐(16) 编辑
摘要: 一、前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebService进行通信。服务器端维护IP白名单列表,只有IP地址在白名单中的客户端才可以成功调用到接口,获得服务 阅读全文
posted @ 2016-02-25 20:45 leesf 阅读(1610) 评论(0) 推荐(2) 编辑
摘要: 一、问题描述 1.遍历二叉树指定层次的所有结点 2.统计指定层的搜索结点个数 3.对二叉树进行层次遍历 4.找到二叉树中每一层的第一个结点或最后一个结点 二、问题分析 对树结构的问题a56爆大奖在线娱乐们首先会想到使用递归来解决,因为树结构完美适合递归,树的前序、中序、后序遍历使用递归很容易就可以解决,并且很容易理解 阅读全文
posted @ 2016-02-23 21:06 leesf 阅读(1100) 评论(0) 推荐(3) 编辑
摘要: 一、题目描述 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空 汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满 的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶 阅读全文
posted @ 2016-02-23 15:35 leesf 阅读(4795) 评论(0) 推荐(4) 编辑
摘要: 一、前言 为什么要学习了解Java虚拟机 1.a56爆大奖在线娱乐们需要更加清楚的了解Java底层是如何运作的,有利于a56爆大奖在线娱乐们更深刻的学习好Java。 2.对a56爆大奖在线娱乐们调试错误提供很宝贵的经验。 3.这是合格的Java程序必须要了解的内容。 基于此,笔者打算出一个Java虚拟机的系列,加深自己对知识点的理解,同时也方便各位有需 阅读全文
posted @ 2016-02-21 21:32 leesf 阅读(6338) 评论(2) 推荐(21) 编辑
摘要: 一、前言 相信大家平时肯定会收到朋友发来的链接,打开一看,哦,需要投票。投完票后弹出一个页面(恭喜您,您已经投票成功),再次点击的时候发现,啊哈,您的IP(***.***.***.***)已经投过票了,不能重复投票。这时候,a56爆大奖在线娱乐们可能会想,能不能突破ip地址的限制进行刷票呢?有了这样的想法,那就去做吧 阅读全文
posted @ 2016-01-30 08:49 leesf 阅读(15176) 评论(28) 推荐(28) 编辑
上一页 1 ··· 8 9 10 11 12 13 下一页