1.实例变量是每个Object一个,每个对象都有自己的实例变量副本。
例如:
public class Test{
int x = 5;
}
Test t1 = new Test();
Test t2 = new Test();
双方t1并t2会拥有自己的副本 x。
2.静态变量是每个类一个,该类别共享相同的静态变量的每一个对象。
例如:
public class Test{
public static int x = 5;
}
Test t1 = new Test();
Test t2 = new Test();
无论t1和t2将有只有一个X在它们之间共享。
3.当JVM加载类时,将初始化静态变量。
4. A static method 无法访问Non-static变量或方法。
5. Static methods同时Static variables可以模仿 a Singleton Pattern,但它不是正确的方式,因为当有很多类时,我们无法确定JVM的类加载顺序,这可能会产生问题。