static学习笔记

static关键字:是用于修饰成员属性和成员方法的一个关键字 

static修饰属性:

(一)static修饰属性效果特性:

1、全类共享一个值

2、与对象无关,而是与类有关,所有static的属性又被称为类属性,可以直接用类名.的方式直接操作(当然要受访问修饰符的限制)

3、常量属性可以无脑定义为static

(二)static修饰属性内存特性:

1、该属性不会存放在对象身上,而是被放到数据段的静态区当中,全类中只放一份

2、static修饰属性是在类加载的时候放入静态区的,所以可以直接使用类名.的方式直接使用无需产生对象

(三)static修饰的属性对应的场景

1、决不能因方便调用就把属性设计为static

2、变量属性必须判断出要有全类共享唯一值这个特性才能这么做

 

static修饰方法

(一)static修饰方法的效果

1、既可以用类名.的方式也可以用对象名.的方式访问

2、静态方法只能操作静态属性或调用其他静态方法,非静态方法全都可以操作

(二)static修饰方法的内存机制

1、在内加载期间static修饰的方法或属性会先加载然后再加载非static的方法或属性,导致了在加载static的内容时还不知道非static内容的存在所以静态方法只能操作静态属性或调用其他静态方法。

(三)static修饰方法在设计上:

1、只有操作跟对象无关的方法才能设计为static

2、在实际设计中,只有工具类的工具行为才设计为static

 

★ static不能修饰构造方法,因构造方法和对象有关

★★总结static的用法共性:

1、一定和对象无关,和类有关

2、一定会在加载期有特殊操作

原文地址:https://www.cnblogs.com/LH923613603/p/6882847.html