摘要:
1.7中使用segment分段锁,每段允许一个线程进行操作。 1.8中底层与HashMap类似。使用synchronized关键字,只锁当前链表或红黑树的首节点。 Hashtable使用全表锁,效率低下。 阅读全文
posted @ 2021-11-01 17:25
GitHub-ahao
阅读(33)
评论(0)
推荐(0)
摘要:
HashMap底层是数组+链表+红黑树 链表长度大于8时会转化为红黑树(会进行一个判断,数组长度小于64时,会先扩容) 每次扩容长度翻倍,并且总是为2的幂。 使用扰动函数减少碰撞(有些hash函数并不优秀) 其中的threshold决定扩容的时机,默认的时0.75,及Hash Map中填充了75%就 阅读全文
posted @ 2021-11-01 17:14
GitHub-ahao
阅读(33)
评论(0)
推荐(0)
摘要:
也是非线程安全滴! 内有若干节点,每个节点中保存自己的值,有prev指向前一节点,next指向后一节点。 还有首节点,prev=null和尾节点next=null 阅读全文
posted @ 2021-11-01 16:31
GitHub-ahao
阅读(39)
评论(0)
推荐(0)
摘要:
ArrayList底层是一个object数组,线程不安全,这是与Vector的区别。 简单来说,创建ArrayList的时候使用无参构造器会返回内部静态空数组,添加元素时进行第一次扩容,扩到10,之后按1.5倍扩容,直到1.5倍后大于Integer.MAX,比较原数组长度和Integer.MAX,原 阅读全文
posted @ 2021-11-01 16:06
GitHub-ahao
阅读(44)
评论(0)
推荐(0)

浙公网安备 33010602011771号