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