在Java 9中使用sun.misc.Unsafe
生活随笔
收集整理的這篇文章主要介紹了
在Java 9中使用sun.misc.Unsafe
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 9 EA版本已經發布,現在我們可以看到如何使用sun.misc.Unsafe。 我領導了公開運動,以保留對Java 9的訪問,該訪問最終成功,從而導致對JEP 260的修訂。
那么,事情如何結束?
設定
首先,您需要下載 Java 9 EA。 對于IDE,我使用IntelliJ IDEA。 您需要2017年2月27日發布的新的2017.1 Public Preview 。早期版本不適用于Java 9。
jdk.unsupported模塊
jdk.unsupported模塊中現在提供了sun.misc.Unsafe。 完整的JRE和JDK映像中包含此模塊。
這是jdk.unsupported的模塊聲明:
module jdk.unsupported {exports sun.misc;exports sun.reflect;exports com.sun.nio.file;opens sun.misc;opens sun.reflect; }如您所見,sun.misc已導出。
使用它
我有一個示例項目,帶有一個包java9unsafe和一個具有相同名稱的模塊。
要使用Unsafe,您需要將jdk.unsupported添加到代碼的模塊聲明中:
module java9unsafe {requires jdk.unsupported; }幸運的是,IDEA將檢測缺少的聲明,并建議將鼠標懸停在import聲明上時為您添加。
然后,您可以使用不安全。 請注意,您必須通過反射間接獲取Unsafe實例,否則會收到安全異常
module jdk.unsupported {public class Java9Unsafe {public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {System.out.println("The address size is: " + getUnsafe().addressSize());}@SuppressWarnings("restriction")private static Unsafe getUnsafe() throws NoSuchFieldException, IllegalAccessException {Field singleoneInstanceField = Unsafe.class.getDeclaredField("theUnsafe");singleoneInstanceField.setAccessible(true);return (Unsafe) singleoneInstanceField.get(null);}}答案是:地址大小為:8
翻譯自: https://www.javacodegeeks.com/2017/03/using-sun-misc-unsafe-java-9.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的在Java 9中使用sun.misc.Unsafe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java增强枚举的用例
- 下一篇: 张籍读音 张籍的简介