Java源码系列(一)集合

(一)hashCode()和equals

如上:在hashmap的底层实现是链表+数组:

(二)那些年实现过的源码

Stringbuffer(Stringbuilder):内部由数组实现  ;扩容为每次变为原来的2倍+2;区别Stringbuffer的方法线程安全,使用了重量级锁synchronized,修饰了所有方法

ArrayList(Vector):内部是数组,每次扩容为原来的1.5,vector线程安全,

hashmap的装填因子:0.75


以上是jdk1.8的源码,当拉米塔=0.5时,也就是期望和方差都是0.5时;

二:hashmap和hashtable  以及Properties



扫描二维码关注公众号,回复: 2688444 查看本文章

hashmap继承自abstructMap抽象类,线程不安全  ,而hashtable继承自dictionary接口线程安全

hashMap的putval方法:由put方法包装,因为n是2的整数次幂,所以这里使用了n-1,就得到了,所有位都是1,然后进行与运算;

三,强软弱虚引用




四,容器的同步控制和只读设置




猜你喜欢

转载自blog.csdn.net/qq_27862335/article/details/80030533