static关键字

使用的两种情况:

  1. 当你想为某些特定数据创建一份内存空间,并且所有该类的对象共享一个域,而不去管该类的对象是否创建;
  2. 当你创建某个方法不想和它包含的类的对象想关联;
代码:
public class StaticFun{

	static int i = 0;//static关键字声明的变量让该变量和该类的诸多对象无关;
		
	public static void main(String ar[]){
		StaticFun f1 = new StaticFun();
		System.out.println(f1.i++);
		
		StaticFun f2 = new StaticFun();
		System.out.println(f2.i++);
		
		System.out.println(i);
		}
	}
 结果是:0,1,2

问题二: 无法从静态上下文中引用非静态!
这个错误在编译的时候一般都是在main方法中引用了非静态变量,原因是static的方法是可以脱离对象而调用的,非静态变量必须被对象所调用,如果在静态方法中引用了非静态变量,那么虚拟机不知道引用哪一个对象的该变量,自然出错;

你可能感兴趣的:(虚拟机)