1. 程式人生 > >javap 反編譯Atomicity 1.5.0_22和1.8.0_111的區別

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