天天看點

Java transient/volatile關鍵字的作用

transient關鍵字

當一個對象被序列化的時候,被transient修飾的變量不參與序列化和反序列化。

transient關鍵字一般在實作了Serializable接口的類中使用,用于将變量從序列化過程中排除。

volatile關鍵字

被volatile關鍵字修飾的變量,在被線程所使用時,總會被讀取到最新寫入的值。

要了解volatile關鍵字的作用,得結合jvm記憶體機制。

定義一個變量在多線程中使用時,線程的工作記憶體會從主記憶體複制一份變量副本,即使變量的值被修改,修改的也是主記憶體中的值,跟線程的工作記憶體中的變量副本沒有任何關系。

要想使線程的工作記憶體讀取主記憶體中變量最新的值,就需要将變量用volatile修飾。

推薦文章:部落格園-volatile關鍵字的作用

繼續閱讀