1. 变量的分类:局部变量、静态变量、成员变量
静态变量:使用关键字static修饰的变量称为静态变量,存放在方法区中,所有对象共享一份。静态变量是类级别的。静态变量在类加载时进行赋值,并且只赋值一次。
成员变量:又叫实例变量、非静态变量。成员变量在创建对象的时候初始化,并且存储在堆中。是一个对象一份
成员变量只有在构造方法调用时才赋值。若没有调用构造方法,只是把类装载到Java虚拟机上时,成员变量并没有值。
2. 什么时间将变量声明成静态变量?
如果一个属性所有的对象都有,而且这个属性的值是相同的,则将该属性声明为静态变量。
3. 如何访问?
成员变量:必须对象存在时,才能访问。采用“引用.”的形式访问。
静态变量:访问时可以使用“类名.”的形式访问,也可以使用“引用.”的形式访问。即使代码中使用的是引用进行访问的,底层也是使用类名进行访问的,和对象无关,不会出现空指针异常。