1. new指令
new指令用於在記憶體中分配空間,並執行物件的構造方法。編譯後的位元組碼指令如下,建立新的物件的過程包括三個步驟。
// 建立新的demo物件
demo demo =
newdemo()
;// 經過編譯後的位元組碼
new// 在記憶體中分配空間
dup
invokespecial
>
// 執行構造方法
astore_1 // 把記憶體位址賦值給變數demo
2. static指令
3. final指令
4. volatile指令
記憶體屏障(memory barriers)禁止cpu在執行機器指令時將屏障後不符合規定的指令提前執行。
5. synchronized指令
synchronized指令將任意物件變為鎖,並且為了提高鎖的效能,將鎖優化為逐步公升級的鎖(偏向鎖、自旋鎖、阻塞)。
參考文章
指令重排序 - csdn
關鍵字 volatile關鍵字的作用
1.volatile關鍵字是防止在共享的空間發生讀取的錯誤。只保證其可見性,不保證原子性 使用volatile指每次從記憶體中讀取資料,而不是從編譯器優化後的快取中讀取資料,簡單來講就是防止編譯器優化。2.在單任務環境中,如果在兩次讀取變數之間不改變變數的值,編譯器就會發生優化,會將ram中的值賦值...
volatile關鍵字的作用
在c c 語言中經常會遇到volatile關鍵字,它的字面意思是 可變的 不穩定的 volatile 會影響編譯器編譯的結果,被volatile修飾的變數是隨時可能發生變化的,編譯器對volatile變數有關的運算,不進行編譯優化,以免出錯,vc 在產生release版可執行碼時會進行編譯優化,加v...
sealed關鍵字的作用
sealed關鍵字的作用 在類宣告中使用sealed可防止其它類繼承此類 在方法宣告中使用sealed修飾符可防止擴充類重寫此方法。sealed修飾符主要用於防止非有意的派生,但是它還能促使某些執行時優化。具體說來,由於密封類永遠不會有任何派生類,所以對密封類的例項的虛函式成員的呼叫可以轉換為非虛擬...