1.static 关键字的特点
>随着类的加载而加载
>优先于对象的存在
>被类的所有对象共享
>可以通过类名调用(其实它本身也可以通过对象调用,推荐使用类名调用,因为不需要创建对象,节省空间)
2.static关键字的注意事项
>在静态方法中是没有this关键字一说的,因为静态是随着类的加载而加载的,静态比对象优先存在
>静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
* 成员变量:只能访问静态变量
* 成员方法:只能访问静态成员方法
非静态方法:
* 成员变量:可以是静态的,也可以是非静态的
* 成员方法:可以是静态的成员方法,也可以是非静态的成员方法。
简单的记:静态只能访问静态。
本质上是产生的先后顺序,静态的比非静态的先产生。
3.静态变量与成员变量的区别
静态变量也叫类变量,成员变量也叫对象变量
>所属不同
*静态变量属于类,所以也称为类变量
*成员变量属于对象,所以也称为对象变量
>内存中的位置不同
*静态变量存储于方法区的静态区
*成员变量存储于堆区
>内存出现的时间不同
*静态变量随着类的加载而加载,随着类的消失而消失
*成员变量随着对象的创建而创建,随着对象的消失而消失
>调用不同
*静态变量 可以用类调用,也可以使用对象来调用,
*成员变量 只能使用对象来调用