我觉得你的回答没有问题,我查了一下viotile的oracle官方文档,里面明确了是可以禁止重排序的,如果不禁止重排序,需要保证重排序的所有结果和不重排序是一样的。 官网viotile地址:https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.3.1.4 关于new关键字的问题:我使用idea自带的show bytecode工具查看字节码,结果如下: 后面的注释是我自己加上的 L9 // 第九个子程序 LINENUMBER 15 L9 // 第九个子程序对应代码第15行, 这行中只有new 的一句话 NEW org/short_address/org/keyword/VolatileTest // 生产对象 DUP INVOKESPECIAL org/short_address/org/keyword/VolatileTest.<init> ()V // 初始化 PUTSTATIC org/short_address/org/keyword/VolatileTest.object : Lorg/short_address/org/keyword/VolatileTest; // 把new的对象引用赋值给object对象 综上所述,我觉得楼主回答的没有问题
点赞 评论

相关推荐

牛客网
牛客企业服务