Unsafe是JDK中的一個內(nèi)置的類采桃,用于直接根據(jù)內(nèi)存地址訪問元素.它也提供了很多好用的方法,比如普办,用volatile的方式設(shè)置數(shù)組中的元素.
但是,這個類的作者肢娘,不希望我們使用它,因為我們雖然我們獲取到了對底層的控制權(quán)橱健,但是也增大了風(fēng)險,安全性正是Java相對于C++/C的優(yōu)勢.
這個類拘荡,默認(rèn)情況下撬陵,只能被由BootstrapClassLoader加載器加載的類所使用.
那我們要是想使用的話网缝,該如何來獲取呢?
通過下面的幾行代碼即可獲得一個Unsafe的實例:
Field singleoneInstanceField = Unsafe.class.getDeclaredField("theUnsafe");
singleoneInstanceField.setAccessible(true);
Unsafe unsafe = (Unsafe)singleoneInstanceField.get(null);