static 静态

static 静态

  1. 特性

a)     与对象无关,与类有关

b)     在加载器有特殊操作(在执行main方法之前)

  1. 属性

a)     全类不管多少个属性,全类共享一个值→(类名.)的方法来访问

b)     常量属性直接设计为static

c)      变量属性极少设计为static

d)     static 在加载期(运行之前),该属性即被产生,产生在内存的书籍段的静态期(普通属性是运行期执行到new 代码,产生在内存的堆期)

e)     可以不产生对象  直接访问该属性

f)      凡是被new出来的都放在堆区

g)     局部变量在栈区

h)     static 修饰的属性 →静态属性→类属性

i)       该属性与对象无关,全类共享一个值,所以很只有极少的变量属性能够被设计为static  (真正判断出所有对象的值永远第一样)

  1. static修饰的方法----静态方法  ---类方法

a)     该方法与对象无关,只与类有关--static的方法不能访问本类的任何非static 的属性或者其他方法(因为他们全跟对象有关)

b)      所以只有当这个方法的整个实现都跟对象身上的任何非static无关的时候,才能把该方法设计为static

c)      即:工具类的工具方法才能设计为static 。

d)     在加载期 ,会优先加载static 的方法,后加载非static的方法---这个是static 不能调用非static得机制上的原因

  1. 构造方法不能用static  修饰   凡是用static 修饰的都与对象无关,而构造方法天生与对象是绑定关系(它是用来产生对象的)
原文地址:https://www.cnblogs.com/jlh915057902/p/6399662.html