Java 中 transient 和 volatile 有什麼區別?
transient:例項變數標記為 transient,表示 JVM 在序列化包含該變數的物件時跳過該變數。此修飾符包含在建立該變數的語句中,位於變數的類或資料型別之前。
示例
public transient int limit = 55; // will not persist public int b; // will persist
volatile:volatile 修飾符用於告知 JVM,訪問變數的執行緒必須始終將其自己的變數私有副本與記憶體中的主副本合併。
訪問 volatile 變數將同步主記憶體中變數的所有快取的副本。volatile 只適用於型別為物件或私有的例項變數。volatile 物件引用可為 null。
示例
public class MyRunnable implements Runnable {
private volatile boolean active;
public void run() {
active = true;
while (active) {
}
}
public void stop() {
active = false;
}
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP