- 博客(6)
- 资源 (1)
- 收藏
- 关注
【Java源码解读】Hashtable
源码来源:OpenJDK 10 简述Hashtable实现了Map接口;Key和Value都不允许是nullHashtable的public方法都是用synchronized修饰,以达到线程安全的效果。一般较少用Hashtable。当没有线程安全的需求时,推荐使用HashMap;当需要线程安全时,推荐使用并发性能更好的ConcurrentHashMap 其它...
2018-08-31 21:51:29 205
原创 【Java源码解读】HashMap
源码来源:OpenJDK 10 简述HashMap实现了Map接口与Hashtable不同处在于:HashMap允许null为key,允许null为value,而Hashtable则不支持Hashtable线程安全,HashMap未同步化,所以线程不安全 关于性能当所使用的Hash函数能使得所有元素均匀地分布到各哈希桶时,get和put这类基础操作的耗时可...
2018-08-20 14:49:26 215
【Java源码解读】Collections.synchronizedXxx
源码来源:OpenJDK 10 解读对象synchronizedCollection(Collection<T> c)synchronizedList(List<T> list)synchronizedSet(Set<T> s)synchronizedSortedSet(SortedSet<T> s)synchroni...
2018-08-07 17:44:40 585
【Java源码解读】Vector
源码来源:OpenJDK 10 简述Vector实现了List接口;大小可变ArrayList是线程不安全的,Vector的方法线程安全。Vector的public方法多用synchronized修饰,无此修饰的方法的内部实现也使用了synchronized。除此之外,与ArrayList原理相同,实现大同小异。如果没有线程安全的需求,还是推荐使用ArrayList,以避免不必要...
2018-08-06 22:49:24 451
【Java源码解读】LinkedList
源码来源:OpenJDK 10 简述LinkedList实现了List和Deque(双端队列)接口,它是一个双向链表。当需要访问特定索引处的元素时,会选取离目标位置更近的一端开始遍历(从头部或尾部开始)。 关于线程安全/同步与ArrayList类似,LinkedList线程不安全。如果在多线程场景下使用,且至少有一个线程会改变list的结构,就要像对待ArrayL...
2018-08-03 15:21:52 153
原创 【Java源码解读】ArrayList
源码来源:OpenJDK 10 简述ArrayList实现了List接口;大小可变;允许有null元素;支持调整其内部用户存储数据的数组大小;与Vector比较相似,除了ArrayList不同步(多线程不安全)。 关于性能size, isEmpty, get, set, iterator, listIterator等方法的时间复杂度都是O(1);add的时间复杂度是可...
2018-08-02 17:51:36 106
ZooKeeper实用分析.pptx
2020-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人