一个方法用static修饰,便是静态方法或类方法。
static修饰的内容是随着类的加载而加载的,且只加载一次。
它存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。
它优先于对象存在,所以,可以被所有对象共享。
一个方法的加载是先进入栈区分配内存再给该方法中的对象在堆中开辟空间,赋予初值;
由于static方法在装载分配内存空间首先完成,比构造方法早,此时非static属性和方法还没有完成初始化,访问一个内存中不存在的东西也就会报错。
所以,在static方法内部无法直接调用非static方法(可以通过先实例化对象,再用该对象调用非static方法),但非static方法中可以调用static方法,通过类.方法名()的方式。