本项目是记录自己在学习研究Java安全过程中遇到的优秀资源,包括Java安全的多个细分领域,如Java漏洞分析和Java代码审计以及Java开发的应用程序组件协议甚至Java本身的安全问题等。一个不能攻击Java的黑客不是一个好黑客,一个不懂Java安全的师傅不是一个好师傅!
HashMap是线程不安全的类,HashTable线程安全,但每次操作都使用synchronized关键字,对全局加锁性能太低。 ConcurrentHashMap大量使用volatile,final,CAS等无锁技术来减少锁竞争对于性能的影响。避免了对全局加锁,使用对局部加锁,极大的提高了在并发环境下的操作速度。
几天前,我偶然地将之前写的用来测试AtomicInteger和synchronized的自增性能的代码跑了一下,意外地发现AtomicInteger的性能比synchronized更好了,经过一番原因查找,有了如下发现: 可以看出,在jdk1.8中,直接使用了Unsafe的getAndAddInt方法,而在jdk1.7的Unsafe中,没有此 ...
在《疫苗:Java HashMap的死循环》中,我们看到,java.util.HashMap并不能直接应用于多线程环境。对于多线程环境中应用HashMap,主要有以下几种选择: 使用线程安全的java.util.Hashtable作为替代。 使用java.util.Collections.synchronizedMap方法,将已有的HashMap对象包装为线程 ...
一些您可能无法访问的结果已被隐去。
显示无法访问的结果