JDK源码学习系列05----LinkedList
1.LinkedList简介
LinkedList是基于双向链表实现的,它也可以被当作堆栈、队列或双端队列进行操作。
public class LinkedList
extends AbstractSequentialList
implements List, Deque, Cloneable, java.io.Serial...
分类:
其他好文 时间:
2014-06-20 12:54:28
阅读次数:
205
JDK源码学习系列06----Vector
1.Vector简介
Vector的内部是数组实现的,它和ArrayList非常相似,最大的不同就是 Vector 是线程安全(同步)的。
public class Vector
extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Se...
分类:
其他好文 时间:
2014-06-20 12:49:01
阅读次数:
298
最近在研究jdk源码,发现debug时无法查看源码里的变量值。因为sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar。下面这六步是编译jdk的具体步骤:Step1:LocatetheJDKsourceFirstnavigatetotheJDKinstalldirectory,...
分类:
系统相关 时间:
2014-06-18 19:34:23
阅读次数:
278
HashMap基于hash表的Map接口实现,它实现了Map接口中的所有操作。HashMap允许存储null键和null值。这是它与Hashtable的区别之一(另外一个区别是Hashtable是线程安全的)。另外,HashMap中的键值对是无序的。下面,我们从HashMap的源代码来分析Has.....
分类:
其他好文 时间:
2014-06-14 09:43:49
阅读次数:
304
Java集合02----LinkedList的遍历方式及应用
前面已经学习了ArrayList的源码,为了学以致用,故列举一些ArrayList的遍历方式及应用。JDK源码学习系列05----LinkedList
1.LinkedList的遍历方式
a.一般的for循环(随机访问)
int size = list.size();
for (int i=0; i<size; i...
分类:
编程语言 时间:
2014-06-08 09:24:51
阅读次数:
290
二者区别,简而言之,在于StringBuffer内部实现了线程同步,而StringBuilder没有。
二者均继承自AbstractStringBuilder。
JDK源码中可以看得更清楚些。
=============================
从源码中可以看出,子类AbstractStringBuilder已经实现了所有的操作,String...
分类:
其他好文 时间:
2014-06-05 06:47:58
阅读次数:
220
由于前面学习了StringBuffer和StringBuilder的父类AbstractStringBuilder,他们俩的很多方法都是直接super了父类的,也为了较好的比较StringBuffer和StringBuilder,所以把二者放在同一博文中。
一.StringBuffer
1.静态类,不能被继承,实现了Serializable和CharSequence接口。
public fi...
分类:
其他好文 时间:
2014-06-05 04:37:39
阅读次数:
254
String,StringBuffer和StringBuilder的异同
String,StringBuffer和StringBuilder的的源码已经在本博客的JDK源码学习系列中有了详细的介绍:
String 源码: http://blog.csdn.net/sheepmu/article/details/23303837
StringBuffer 和StringBuil...
分类:
其他好文 时间:
2014-06-03 05:45:58
阅读次数:
211
JDK源码学习----ArrayList
1.ArrayList简介
ArrayList是基于Object[] 数组的,也就是我们常说的动态数组。它能很方便的实现数组的增加删除等操作。
public class ArrayList extends AbstractList
implements List, RandomAccess, Cloneable, java.io.Se...
分类:
其他好文 时间:
2014-06-01 09:42:27
阅读次数:
263
目的:本文通过分析JDK源码来对比ArrayBlockingQueue 和LinkedBlockingQueue,以便日后灵活使用。
1. 在Java的Concurrent包中,添加了阻塞队列BlockingQueue,用于多线程编程。BlockingQueue的核心方法有:
* boolean add(E e) ,把 e 添加到BlockingQueue里。如果BlockingQueue可以容纳,则返回true,否则抛出异常。
* boolean offer(E e),表示如果可能的话,将 e 加...
分类:
数据库 时间:
2014-05-22 12:19:23
阅读次数:
442