static 静态
- 特性
a) 与对象无关,与类有关
b) 在加载器有特殊操作(在执行main方法之前)
- 属性
a) 全类不管多少个属性,全类共享一个值→(类名.)的方法来访问
b) 常量属性直接设计为static
c) 变量属性极少设计为static
d) static 在加载期(运行之前),该属性即被产生,产生在内存的书籍段的静态期(普通属性是运行期执行到new 代码,产生在内存的堆期)
e) 可以不产生对象 直接访问该属性
f) 凡是被new出来的都放在堆区
g) 局部变量在栈区
h) static 修饰的属性 →静态属性→类属性
i) 该属性与对象无关,全类共享一个值,所以很只有极少的变量属性能够被设计为static (真正判断出所有对象的值永远第一样)
- static修饰的方法----静态方法 ---类方法
a) 该方法与对象无关,只与类有关--static的方法不能访问本类的任何非static 的属性或者其他方法(因为他们全跟对象有关)
b) 所以只有当这个方法的整个实现都跟对象身上的任何非static无关的时候,才能把该方法设计为static
c) 即:工具类的工具方法才能设计为static 。
d) 在加载期 ,会优先加载static 的方法,后加载非static的方法---这个是static 不能调用非static得机制上的原因
- 构造方法不能用static 修饰 凡是用static 修饰的都与对象无关,而构造方法天生与对象是绑定关系(它是用来产生对象的)