0
点赞
收藏
分享

微信扫一扫

【JavaEE进阶序列 | 从小白到工程师】类变量(static静态变量)和实例变量(非静态变量)的区别

前言

                 本文介绍类变量(static静态变量)和实例变量(非静态变量)的区别

🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈

一、两种变量的来源

       成员变量其实包括类变量(static静态变量)和实例变量(非静态变量)

二、类变量(static静态变量)

🔶类变量(static静态变量)的定义格式

              static关键字修饰

如: static int a;

/*

注意:static表示不要实例化就可以使用

*/

🔶类变量(static静态变量)的特点

                 1.随着类的加载而加载

2.优先于对象存在(这样就会导致了静态方法只能访问静态变量,不能访问不是static修饰的)

3.被所有对象所共享 (其中一个对象将它值改变,其他对象得到的也是改变后的结果)(在项目中应用比较多,同步修改)

4.可以直接被类名调用

三、实例变量(非静态变量,无static修饰)

🔶 实例变量(非静态变量,无static修饰)的定义格式

                  无 static关键字修饰

如: int a;

四、区别

区别:
1.定义不同

类变量(静态变量)定义时候前面要加上static

实例变量(非静态变量)不需要加

2.初始化不同

类变量(静态变量)随着类的加载而初始化

实例变量(非静态变量) 是new对象后才进行初始化

3.内存位置不同

类变量(静态变量)随着类的加载而存在于“方法区”中

实例变量(非静态变量)存储在“堆内存区”

4.调用方式不同

类变量(静态变量)通过类名调用

实例变量(非静态变量)通过对象调用

5.生命周期不同

类变量(静态变量)随着类的加载而加载,虚拟机停止运行类时,静态变量周期结束(类变量生命周期最长,随着类的消失而消失)

实例变量(非静态变量)随着对象的产生而产生,随着对象的消失而失去引用,等待垃圾回收(随着对象的消失而消失)

举报

相关推荐

0 条评论