我对Java中静态方法的使用有些怀疑.我读了很多地方静态变量是独立于实例的,所以是全局的.
public class ThirdClass {
public static var = "Java";
}
public class Second {
public static void main(String[] args) {
ThirdClass ob1 = new ThirdClass();
System.out.println(ob1.var); // prints Java
ob1.var="Ruby";
ThirdClass ob2 = new ThirdClass();
System.out.println(ob2.var); // prints Ruby
}
}
public class First {
public static void main(String[] args) {
ThirdClass ob3 = new ThirdClass();
System.out.println(ob1.var); // prints Java again!!!
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在第二类中看到的,ThirdClass的多个实例共享变量var的相同实例.但是First类中的一个单独的实例不能访问最终值"Ruby",而是显示原始的"Java".这意味着静态变量不是全局变量,而只是全局到单个执行!
与实例变量相比,还要创建静态变量资源密集型吗?
请建议.
java ×1