我有一个globle标志来启用日志记录/禁用日志记录,还有一个类级别标志。
这是代码:
public class Utils {
public static volatile boolean GLOBLE_LOG_FLAG = true;
}
public class TestClass {
private static volatile Boolean LOCAL_LOG_FLAG = Utils.GLOBLE_LOG_FLAG;
public void test() {
System.out.println("LOCAL_LOG_FLAG: = " + LOCAL_LOG_FLAG);
Utils.GLOBLE_LOG_FLAG = false;
System.out.println("now LOCAL_LOG_FLAG: = " + LOCAL_LOG_FLAG);
}
}
public static void main(String[] args) {
TestClass class1 = new TestClass();
class1.test();
}
Output:
LOCAL_LOG_FLAG: = true
now LOCAL_LOG_FLAG: = true
为什么设置LOCAL_LOG_FLAG
时Utils.GLOBLE_LOG_FLAG = false;
不会改变
如果java使用的是对象引用,当我分配LOCAL_LOG_FLAG
时,它应该将Utils.GLOBLE_LOG_FLAG = false;
更改为false是吗?我这是怎么了?
谢谢