不是說volatile不保證原子性嗎?為什么對于64位類型的變量用volatile修飾?
JAVA 規(guī)定的。JAVA 說這么寫 就給你的64位 保證原子性,就這么任性,怎么地。
JAVA 規(guī)定的。JAVA 說這么寫 就給你的64位 保證原子性,就這么任性,怎么地。
2016-07-07
這個老師說的真的太好 思路清晰 一看就懂。 其實JAVA多線程問題本身不難就是太多不會說話的講師把它越說越復(fù)雜 我會關(guān)注這個講師 希望看見你的其他視頻
2016-06-13
已采納回答 / hearain
因為生命周期的原因。方法中的局部變量,方法結(jié)束后這個變量就要釋放掉,final保證這個變量始終指向一個對象。首先,內(nèi)部類和外部類其實是處于同一個級別,內(nèi)部類不會因為定義在方法中就會隨著方法的執(zhí)行完畢而跟隨者被銷毀。問題就來了,如果外部類的方法中的變量不定義final,那么當(dāng)外部類方法執(zhí)行完畢的時候,這個局部變量肯定也就被GC了,然而內(nèi)部類的某個方法還沒有執(zhí)行完,這個時候他所引用的外部變量已經(jīng)找不到了。如果定義為final,Java會將這個變量復(fù)制一份作為成員變量內(nèi)置于內(nèi)部類中,這樣的話,由于final所修...
2016-05-23