在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

惊现神作!!!

发现穿越类小说 《穿越位面的狂人》 起点地址: https://book.qidian.com/info/1010641845 小说名《位面穿梭之宿舍电梯》改为《穿越位面的狂人》nx大学大一学生柳风,因经济拮据,不得不住在宿舍楼顶的一间破屋子里,半夜下楼上厕…

[HNOI2019]校园旅行

题目 过于神仙啊,抄题解.jpg 首先\(n\)并不是很大啊,我们可以直接用\(f_{i,j}\)表示\(i\)到\(j\)是否存在一个回文路径 对于一条回文路径,如果在两端分别添加一个相同的字符,那么仍然是一个回文路径,于是我们可以利用这…

Your CPU supports instructions that this TensorFlow binary was not compiled to use AVX AVX2

大致的原因就是说:tensorflow觉得你电脑cpu还行,支持AVX(Advanced Vector Extensions),运算速度还可以提升,所以可以开启更好更快的模式,但是你现在用的模式相对来说可能不是那么快,…

安卓 sharedpreferences可以被其它activity读取_Google|再见 SharedPreferences 拥抱 Jetpack DataStore...

Google 新增加了一个新 Jetpack 的成员 DataStore,主要用来替换 SharedPreferences, DataStore 应该是开发者期待已久的库,DataStore 是基于 Flow 实现的,一种新的数据存储方案,它提供了两种实现方式:Proto…

【20171025早】alert(1) to win 练习

本人黑绝楼,自称老黑,男,25岁,曾经在BAT工作过两年,但是一直都是底层人员,整天做重复性工作,甚敢无趣,曾和工作十年之久的同事聊天,发现对方回首过往,生活是寡…

Arduino 与 SPI 结合使用 以及SPI 深层理解

本文主要讲解两部分内容,不做任何转发,仅个人学习记录: 一. Arduino 与 SPI 结合使用 : 二. SPI 深层理解 有价值的几个好的参考: 1. 中文版: https://blog.csdn.net/xxxxxx91116/article/details/42620413 这版本适…

VGG

VGG16网络,卷积核3*3,步长为1,填充(padding)为1; 池化2*2,步长为2 全连接层 卷积核1*1 Input Layer:224*224*3图像 Conv1-1 Layer:包含64个卷积核,kernal s…

guava 并发同步_Google Guava –与Monitor同步

guava 并发同步Google Guava项目是每个Java开发人员都应该熟悉的库的集合。 Guava库涵盖了I / O,集合,字符串操作和并发性。 在这篇文章中,我将介绍Monitor类。 Monitor是一种同步构造,可以在使用ReentrantLock的任何地方使用。 随…

qt 定时器_Qt开源作品23-颜色拾取器

## 一、前言在做很多项目的UI界面的时候,相信绝大部分人都有过抄袭别人的UI界面尤其是颜色的时候,毕竟十个程序员九个没有审美,或者说审美跟一坨屎一样,大家主要的精力以及擅长点都是在写功能实现具体功能上面,这个事情…

第5章学习小结

第五章主要学习了树的知识,以前一直很好奇,为什么电脑能存储像树一样的数据结构,学完才发现,ADT加数组或者ADT加链表真的可以衍生出多种多样的数据类型,以下做出本章小结: 1.利用ASCII码实现不同类型的数据…

tf.transpose

tf.transpose(input, [dimension_1,dimenaion_2,..,dimension_n]) 这个函数主要适用于交换输入张量的不同维度用的,如果输入张量是二维,就相当是转置。dimension_n是整数,如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对…

【20171025中】alert(1) to win 脚本渲染自建

游戏误人生&#xff0c;一下午玩了将近四个小时的三国杀&#xff0c;后悔不已&#xff0c;然后重新拾起xss challenge&#xff0c;突发奇想&#xff0c;自己构建渲染后的html。 从最简单的开始。 自动检测html: <!DOCTYPE html> <html> <head><meta http-…

使用JPA和@NamedQueries的Spring数据

如果在JPA实体上使用Spring Data和NamedQuery批注&#xff0c;则可以使用spring数据存储库以更方便的方式轻松使用它们。 在先前的博客中&#xff0c;我们使用spring boot和docker 创建了spring数据项目。 我们将使用相同的项目并增强存储库的功能。 我们将实现一个命名查询&…

vs无法写入量的大数据_一个每天服务数万人的企业食堂:自助餐按重计价,大数据支持食材预备量...

钱江晚报小时新闻记者 祝瑶 昨天下午6点多&#xff0c;钱报记者来到杭州阿里巴巴总部。这里共有5个员工食堂&#xff0c;几乎覆盖了全国各地的口味&#xff0c;每天为数万阿里人服务。其中&#xff0c;最当红的是2号食堂&#xff0c;除了有丰俭由人的自助餐区&#xff0c;还有十…

6号板编译失败找不到arm-none-linux-gnueabi-gcc

明明已经添加到/etc/environment 安装sudo apt-get install lib32z1 lib32ncurses5转载于:https://www.cnblogs.com/xpylovely/p/10817240.html

tf.train.Saver

将训练好的模型参数保存起来&#xff0c;以便以后进行验证或测试&#xff0c;这是我们经常要做的事情。tf里面提供模型保存的是tf.train.Saver()模块。 模型保存&#xff0c;先要创建一个Saver对象&#xff1a;如 savertf.train.Saver() 在创建这个Saver对象的时候&#xff…

Neo4j:空值如何工作?

我时不时地发现自己想将CSV文件导入Neo4j&#xff0c;而我总是对如何处理可能潜伏在其中的各种空值感到困惑。 让我们从一个没有CSV文件的示例开始。 考虑以下列表&#xff0c;以及我尝试仅返回空值的尝试&#xff1a; WITH [null, "null", "", "Ma…

楼层钢筋验收会议纪要_钢筋施工质量通病防治

一、钢筋原材1、钢筋表面出现黄色浮锈&#xff0c;严重转为红色&#xff0c;日久后变成暗褐色&#xff0c;甚至发生鱼鳞片剥落现象。图片原因保管不良&#xff0c;受到雨雪侵蚀&#xff0c;存放期长&#xff0c;仓库环境潮湿&#xff0c;通风不良。防 治 措 施1、钢筋原料应存放…

simulink代码生成(一)——环境搭建

一、安装C2000的嵌入式环境&#xff1b; 点击matlab附加功能&#xff0c; 然后搜索C2000&#xff0c;安装嵌入式硬件支持包&#xff1b;点击安装即可&#xff1b;&#xff08;目前还不知道破解版的怎么操作&#xff0c;目前我用的是正版的这样&#xff0c;完全破解的可能操作…

五步法颈椎病自我按摩图解

​​1.揉捏颈、肩、臂 操作&#xff1a;自我按摩时取坐位。拇指张开&#xff0c;其余四指并拢&#xff0c;虎口相对用力&#xff0c;自枕部开始沿颈椎棘突两旁的肌肉向下揉捏&#xff0c;至上背部手能摸到之处为止。反复揉捏3分钟&#xff0c;然后以相同手法揉捏患侧上肢和颈部…