版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84875881
static关键字特点
1、随着类的加载而加载。
2、优先于对象存在。
3、被类的所有对象共享:这也是判断是否使用静态关键字的条件。
4、可以通过类名调用。
static关键字注意事项
1、在静态方法中是没有this关键字的。原因:静态是随着类的加载而加载,this是随着对象的创建而存在。静态比对象先存在。
2、静态方法只能访问静态的成员变量和静态的成员方法。
(1)静态方法:成员变量:只能访问静态变量。成员方法:只能访问静态成员方法。
(2)非静态方法:成员变量:可以是静态的,也可以是非静态的。成员方法:可是静态的成员方法,也可以是非静态的成员方法。
3、可以通过类名调用,也可以通过对象名调用。
static的内存图解
静态变量和成员变量的区别
(1)所属不同
1、静态变量属于类,所以也称为类变量。
2、成员变量属于对象,所以也称为实例变量(对象变量)。
(2)内存出现时间不同
1、静态变量随着类的加载而加载,随着类的消失而消失。
2、成员变量随着对象的创建而存在,随着对象的消失而消失。
(3)调用不同
1、静态变量可以通过类名调用,也可以通过对象调用。
2、成员变量只能通过对象名调用。
(4)内存中位置不同
1、静态变量存储于方法区的静态区。
2、成员变量存储于堆内存。