索引
链接
https://tech.meituan.com/2019/02/14/talk-about-java-magic-class-unsafe.html
文章截图
简评
通过这篇文章,了解到,Java中底层线程安全,内存操作,锁操作,线程操作等都是由Unsafe类来操作的。并且这个类是单例,全局只有一个。而且,这个类并不是随便就能get获取的,需要执行getUnsafe获取Unsafe对象的前提,是执行get的类是由BootstrapClassLoader加载的。
这种时候就可以使用【-Xbootclasspath/a: 路径】命令,把需要的类路径包含在这个命令里,这就实现了使用BootstrapClassLoader加载指定的类,然后就可以getUnsafe啦。
还有一种方法,是反射,使用反射的方法直接按属性名获取Unsafe内的单例对象theUnsafe,也可以达到获取Unsafe对象的目的。
总之,Unsafe是很底层的一个类,很强大。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/1514