1.对于static关键字的使用的时候对于修饰变量的时候,它相当于一个全局变量;
2.对于static修饰一个函数的时候他是在类被加载的时候首先会被类加载,并且只能加载一次,并且这个方法可以不需要通过实例进行调用例如:
mystatic.java
package study; public class mystatic { public static int sta=0; public int st=0; //static方法优先被使用 static{ System.out.println("some static"); } //创建的mystatic 方法 public static void myStatic(){ System.out.println("static"); } public mystatic() { System.out.println("mystatic"); } public void demo(){ System.out.println("demo"); } }
test.java
package study; public class test { public static void main(String[] args) { mystatic my=new mystatic(); int demo=my.st;//创建对象调用非静态变量 my.demo();//创建对象调用非静态函数 mystatic.myStatic();//可以直接调用静态方法; int a=mystatic.sta;//可以直接调用静态变量 //int b=mystatic.st;这个会报错,由于没有提前创建对象 } }
结果:
some static mystatic demo static
对于这个结果,由于创建的是mystatic类的时候优先调用static方法,然后再进行调用构造方法后再进行调用其它方法。