我对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!!!
    }
}

如您在第二类中看到的,ThirdClass的多个实例共享变量var的相同实例。但是,类First中的一个单独实例不访问最终值“Ruby”,而是显示原始的“Java”。这意味着静态变量不是全局变量,而是仅全局到单次执行!!!

与实例变量相比,创建静态变量资源是否也很密集?

请提出建议。

最佳答案



当然可以。所有未持久存储在某种存储设备(例如硬盘)上的变量在程序的不同执行之间不会保留其值。

09-05 09:03