假设静态变量始终存在是否安全

时间:2015-05-31 21:12:34

标签: java

在Java中,我总是看到类变量(用关键字static定义)等同于其他语言(如C)中的全局变量,在类中定义以避免名称冲突。在C中,您可以在程序运行时随时从任何函数引用全局变量。

Java中的静态变量怎么样?他们总是存在吗?当他们被推荐时,他们总是被装上吗?我想知道当我从另一个类的静态方法使用静态变量时它是否总是安全的。

静态变量是否也会被破坏?

1 个答案:

答案 0 :(得分:2)

初始化类时初始化静态变量,因此始终有效(Initialization of Classes and Interfaces)。

  

类的初始化包括执行其静态初始化程序和类中声明的静态字段(类变量)的初始化程序。

如果静态字段的值发生更改,并且没有其他对前一个值的引用,则前一个值将被垃圾回收。但是,引用本身将始终存在,因此如果“安全”意味着“永远不会访问非法内存”,那么它总是安全的(一般使用Java语言时,不仅仅是在这种情况下)。