我对在 Java 中使用静态方法有一些疑问。 我读过很多地方静态变量是独立于实例的,所以 be 是全局的。
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!!!
}
}
正如您在第二类中看到的,ThirdClass 的多个实例共享变量 var 的同一个实例。但是类 First 中的一个单独实例不访问最终值“Ruby”但显示原始“Java”。这意味着静态变量不是全局变量,而是仅对单次执行全局变量!!!
与实例变量相比,创建静态变量是否占用大量资源?
请提出建议。
最佳答案
It means the static variable are NOT global variable but only global to single execution!!!
当然是。 所有未持久保存到某种存储(如硬盘)的变量不会在程序的不同执行之间保留它们的值。
关于java - Java中静态变量和方法的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403031/