Java容器解析
文章平均质量分 68
DroidMind
这个作者很懒,什么都没留下…
展开
-
Java中HashMap源码解析
首先来看看构造函数transient HashMapEntry<K, V>[] table;public HashMap() { table = (HashMapEntry<K, V>[]) EMPTY_TABLE; threshold = -1; // Forces first put invocation to replace EMPTY_TABLE }private stati原创 2015-09-22 20:29:13 · 824 阅读 · 0 评论 -
Java中的数组类Array
java.lang.reflect.Array里面提供了动态创建和访问数组的静态类。下面我们来看看它拥有哪些静态方法可以使用。1、getXXX函数用来获取指定数组、指定索引的所对应的值。public static Object get(Object array, int index) throws IllegalArgumentException, ArrayIndexOutOfBo原创 2015-12-07 16:04:00 · 955 阅读 · 0 评论 -
Java中的数组工具类Arrays
Arrays就是Java中的数组工具类,它包含了很多静态的方法来对数组进行操作。下面我们来看看它对数组可以进行哪些操作。1、将数组转换成一个Listpublic static <T> List<T> asList(T... array) { return new ArrayList<T>(array); }实质就是使用数组来创建了一个ArrayList。2、数组元素查找系列它提供了一系列的b原创 2015-12-07 15:21:52 · 686 阅读 · 0 评论 -
Java中ArrayList源码解析
一、ArrayList的创建 ArrayList的实质就是一个Object数组。当创建一个ArrayList的时候,内部就会创建一个Object数组。ArrayList的构造函数由三种情况。 (1) public ArrayList(int initialCapacity) (2) public ArrayList() (3)public ArrayList(Collection<?原创 2016-01-12 12:23:12 · 601 阅读 · 0 评论 -
ArrayList扩容问题
首先我们需要知道ArrayList里面的实质的其实是一个Object类型的数组,ArrayList的扩容问题其实就是这个Object类型的数组的扩容问题。transient Object[] elementData; 一、创建时,ArrayList的容量分配创建一个ArrayList有三种情况1、默认大小创建(默认为0)ArrayList al = new ArrayList();创建完成之后,al原创 2016-03-04 13:01:03 · 4251 阅读 · 0 评论 -
HashMap与Hashtable的区别
HashMap: (1)HashMap不是线程安全的,在多线程操作中,需要使用synchronized关键字。(2)HashMap是允许key和value为null的,key为null的hash值为0Hashtable (1)Hashtalbe所有的方法都是线程安全的,在每个公共方法上都有synchronized关键字。(2)Hashtable不允许key和value为空下面我从源码来看看首先我原创 2016-03-20 22:37:54 · 501 阅读 · 0 评论 -
图解HashMap实现原理
(1)HashMap不是线程安全的,在多线程操作中,需要使用synchronized关键字。 (2)HashMap是允许key为null的,key为null的index为0 参考视频:https://www.youtube.com/watch?v=c3RVW3KGIIE (1)HashMap不是线程安全的,在多线程操作中,需要使用synchronized关键字。 (原创 2016-03-19 20:00:50 · 2075 阅读 · 1 评论 -
Java中LinkedList原理解析
一句话概括,Java中的LinkedList其实就是使用了一个双向链表 上面可以清晰的看出,链表中每个元素对应一个节点,节点里面包含三部分,一个是前一个节点的引用,一个是元素内容,一个是后一个节点的引用。 向链表中添加元素的过程就是在链表尾部追加一个节点 void linkLast(E e) { final Node l = last;原创 2016-03-27 15:39:26 · 1675 阅读 · 0 评论