本项目是记录自己在学习研究Java安全过程中遇到的优秀资源,包括Java安全的多个细分领域,如Java漏洞分析和Java代码审计以及Java开发的应用程序组件协议甚至Java本身的安全问题等。一个不能攻击Java的黑客不是一个好黑客,一个不懂Java安全的师傅不是一个好师傅!
在Java并发编程中,内存可见性和原子性是两个至关重要的概念。内存可见性是指一个线程对共享变量的修改能够立即被其他线程所感知;而原子性则是指一个操作或多个操作在并发执行的过程中是不可中断的。为了确保内存可见性和原子性,Java提供了多种同步 ...
IT之家5 月 7 日消息,分析公司 New Relic 近日发布一份“2024 年 Java 生态系统状况报告”,对业界 Java 语言的使用趋势进行分析。 IT之家从报告中获悉,Java 17 在 2018 年 9 月超过 Java 11 后始终保持“业界主流 LTS 版本”地位,截至目前有 35% 的应用正在使用该版本。
IT之家9 月 20 日消息,昨日晚间,Oracle 公司宣布推出 Java 21 的正式版本,以及相应的 JDK 21 开发工具包,该版本是继 JDK 17 之后最新的长期支持(LTS)版本,将获得至少 8 年的支持。 该公司还宣布,对五年前发布的 Java 11 的长期支持已延长至 2032 年 1 月。 Java 21 ...
HashMap是线程不安全的类,HashTable线程安全,但每次操作都使用synchronized关键字,对全局加锁性能太低。 ConcurrentHashMap大量使用volatile,final,CAS等无锁技术来减少锁竞争对于性能的影响。避免了对全局加锁,使用对局部加锁,极大的提高了在并发环境下的操作速度。
总是有很多很多人来问我对Rust语言怎么看的问题,在各种地方被at,其实,我不是很想表达我的想法。因为在不同的角度,你会看到不同的东西。编程语言这个东西,老实说很难评价,在学术上来说,Lisp就是很好的语言,然而在工程使用的时候,你会发现Lisp没 ...
几天前,我偶然地将之前写的用来测试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对象包装为线程 ...