javap 反编译Atomicity 1.5.0_22和1.8.0_111的区别

jdk1.5.0_22环境下使用javacp -c Atomicity.class反编译不成功,提示ERROR:Could not find Atomicity.class,但使用javacp -c Atomicity可反编译成功;
jdk1.8.0_111环境下使用javacp -c Atomicity.class 和javacp -c Atomicity(该条命令会有提示 Warning: Binary file Atomicity contains com.concurrency.Atomicity)均可反编译成功

在jdk1.5.0_22下反编译 Atomicity 效果如下:

1.5.0_22反编译效果

在jdk1.8.0_111下反编译 Atomicity 效果如下:
1.8.0_111反编译效果

每条指令都会产生一个get和put,它们之间还有一些其他的命令。因此在获取和放置之间,另一个任务可能会修改这个域,所以,这些操作不是原子性的。

参考:《Java编程思想》第四版本 作者:Buce Eckel