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