在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相关推荐
- OpenJDK1.8 :java/lang/NoSuchMethodError‘: Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)
记录一个OpenJDK1.8的一个BUG : Crash日志 报错信息 : Event: 0.078 Thread 0x00007f1160055800 Exception <a 'java/l ...
- sun.misc.Unsafe苦难告诉我们什么
Oracle将删除Java 9中的内部sun.misc.Unsafe类 . 尽管大多数人可能对这种变化漠不关心,但其他一些人(主要是图书馆开发人员)并非如此. 博客圈中最近有几篇文章描绘了这种变化所暗 ...
- unsafehelper java_Java 9中将移除 Sun.misc.Unsafe
灾难将至,Java 9中将移除 Sun.misc.Unsafe Oracle 正在计划在Java 9中去掉 sun.misc.Unsafe API. 这绝对将是一场灾难,有可能会彻底破坏整个 java ...
- JVM 的 Finalization Delay 引起的 OOM(java.lang.OutOfMemoryError:null at sun.misc.Unsafe.allocateMemory.)
今天在压力测试环境某一个服务出现crash了,经过一番检查,终于发现是由于JVM的Finalization Delay引起的,这个问题比较特殊,这里记录一下. 这个服务是用Java写的,主要完成的功能 ...
- unsafe jdk9_JDK 9清单:Project Jigsaw,sun.misc.Unsafe,G1,REPL等
unsafe jdk9 Java 9距离(希望)数月了,现在该回顾一下即将发生的变化以及您应该采取的措施 Java 9即将来临(我们正在计算到达的日子 ),其中包含一系列新功能和改进功能. 这就是为什 ...
- JDK 9清单:Project Jigsaw,sun.misc.Unsafe,G1,REPL等
Java 9距离(希望)数月了,现在该讨论一下即将发生的变化以及您应该采取的措施 Java 9即将来临(我们正在计算到达的日子 ),其中包含一系列新功能和改进功能. 这就是为什么我们决定创建一份清单来 ...
- 深入理解sun.misc.Unsafe原理
前言 Unsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制(深入理解ClassLoader工作机制),其实例一般情况是获 ...
- Eclipse导入sun.misc.Unsafe类及其源码
一.Eclipse导入sun.misc.Unsafe类报错的解决方法 在eclipse中导入sun.misc.Unsafe类后,错误如图所示: 错误很明显,提示找不到这个类.具体解决方案如下: 点击W ...
- Java中的天使和魔鬼sun.misc.Unsafe
我们在看ConcurrentHashMap源码时经常看到Unsafe类的使用,今天我们来了解下Unsafe类. Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管 ...
最新文章
- android高级组件,Android高级组件ImageSwitcher图像切换器使用方法详解
- mysql 累计值_mysql 累计值计算
- 12、Power Query-透视列实例应用(多单元格记录合并及汇总)
- chrome js 读取文件夹_使用JavaScript遍历本地文件夹的文件
- [Golang]一道考察defer与命名返回值的题目
- 《Java程序设计》第五周学习总结
- 双机通信c语言程序,双机通信(C语言、主机和从机共用程序)
- python中面向对象的ui_怎样理解Python中的面向对象?
- python处理excel的方法有哪些_Python操作Excel简单方法
- Cisco 3550配置DHCP实例
- 31. 了解各种与排序有关的选择
- 自由空间光通信OptiSystem仿真
- 一文解决 浏览器清除控制台历史记录~
- oracle adjusting parallel,ora-29740故障求救
- Excel使用技巧总结
- ZUI————对话框闪退问题
- Java中数字转中文数字
- android 人脸识别边框_android自定义Arcface人脸识别框/人脸抓拍框/人脸追踪框
- java产生随机英文名_Java之随机生成用户数据
- 这就是Staday跨境电商吸引卖家和合作商的资本!