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方法,然后再进行调用构造方法后再进行调用其它方法。