主要是记录一个奇葩的现象,java类中的静态变量,不仅可以通过类名称直接调用,而且还可以通过类的实力对象调用,java是不存在静态类的,如果非要用静态的类那就是内部类。
类中的静态变量是存储在JVM方法区中,线程共享的。
public class HasStatic {
public static int x = 100;
public static void main(String args[]) {
HasStatic hasStatic1 = new HasStatic();
hasStatic1.x++;
HasStatic hasStatic2 = new HasStatic();
hasStatic2.x++;
hasStatic1 = new HasStatic();
hasStatic1.x++;
HasStatic.x--;
System.out.println("x=" + x);
}
}
结果是102