hashmap的正确使用方法

近期发生太多关于集合类使用不当导致的bug, 在此记录下关于hashmap的信息。

 

https://gist.github.com/1081908

http://www.iteye.com/topic/962172

http://blog.sina.com.cn/s/blog_5465f7f20100tugf.html

http://blog.csdn.net/cleverpig2003/article/details/249844

 

问题列表:

1. hashmap.get() 导致cpu100%

2. hashmap.get()值不正确

……

 

剖析:

1. hashmap是非线程安全,所以也无须谈其数据是否正确。

2. 高并发下,hashmap的设计,可能会导致链表闭环。(可看hashmap的源码,hash冲突和动态扩容)

3. hashmap动态扩容的成本。大数据量的put,在没有设定容量的情况下,会有些问题.

 

建议:

1. 多看集合类的源码实现

2. 多看java.util.concurrent.*

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值