您的位置 首页 java

Java中类变量(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. 生命周期 不同

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

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


作者:今日头条 KJ丶JK /CSDN-KJ.JK

文章来源:智云一二三科技

文章标题:Java中类变量(static静态变量)和实例变量(非静态变量)的区别

文章地址:https://www.zhihuclub.com/178901.shtml

关于作者: 智云科技

热门文章

网站地图