Java源码系列(一)集合

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_27862335/article/details/80030533

(一)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



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

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

三,强软弱虚引用




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




展开阅读全文

没有更多推荐了,返回首页