静态变量和静态方法
静态变量:属于类本身,一个类只有一份,为所有实例公用,其被构建在静态数据区,静态数据区是一个杂居区域,所有jvm的静态数据都放这里。只要类被加载了,那么静态变量就会被创建,此时对象还没被创建,所以静态变量出生早于实例变量。只要对象被摧毁,属于这个对象的实例变量就消亡了,但是静态变量与程序共存亡,只有进程被摧毁,堆摧毁才消失。
静态方法:属于类本身,不需要实例的存在,只要类被加载了那么该方法就可以被调用,也在代码区。静态方法不能访问任何实例的方法和变量,因为静态方法被调用的时候对象可能还没被创建。只要类加载了静态方法就能调用,所以静态方法的使用最好用类名来访问,好处一是效率高,不用创建实例。二是不会被误解为实例方法。