寫final域會(huì)要求編譯器在final域?qū)懼?,?gòu)造函數(shù)返回前插入一個(gè)StoreStore屏障。
讀final域的重排序規(guī)則會(huì)要求編譯器在讀final域的操作前插入一個(gè)LoadLoad屏障。
PS:很有意思的是,如果以X86處理為例,X86不會(huì)對(duì)寫-寫重排序,所以StoreStore屏障可以省略。由于不會(huì)對(duì)有間接依賴性的操作重排序,所以在X86處理器中,讀final域需要的LoadLoad屏障也會(huì)被省略掉。也就是說,以X86為例的話,對(duì)final域的讀/寫的內(nèi)存屏障都會(huì)被省略!具體是否插入還是得看是什么處理器。