一、 使用
修饰符 static type ParameterNam
二、细节
什么是类变量
- 类变量也叫静态变量/静态属性,是该类的==所有对象实例共享==的变量,任何一个该类的对象实例去访问它时,取到的都是相同的值;同样任何一个该类的对象去修改它时,修改的也是同一个变量。
如何定义
- 访问修饰符 static 数据类型 变量名
- static 访问修饰符 数据类型 变量名。
如何访问类变量
- 类名.类变量名 ===> 推荐
- or
- 对象名.类变量名
- ==访问时需要遵守访问修饰符==
类变量在什么时候生成
类变量在类被加载时就初始化了,也就是说,即使你没有创建对象,只要类加载了,就可以使用类变量
类变量的生命周期是随类的加载开始,随类消亡
案例
public class visitStatic { public static void main(String[] args) { System.out.println(A.name); } } class A{ public static String name="ni hao"; }
什么时候加载类信息.
- 什么时候需要用类变量
- 当我们需要让某个类的所有对象都共享一个变量时。
- 类变量与实例变量(普通属性)区别
- 类变量是该类的所有对象共享的,二实例变量(普通成员变量/非静态成员变量))是每个对象独享的’=’
- 普通属性不能通过
类名.变量名
读取
二、静态变量/ 类变量储存
版本划分
- jdk7以前在方法区中
- jdk7以后,静态域储存于定义类型的Class对象中,Class对象如同堆中其他对象一样存在于GO堆中。
- 放在class 实例的尾部,class 变量存在于堆中。
特定
- 所有对象变量共享 ——> 同一个类生成的所有对象。
- 在类加载的时候就生成