04面向对象上(对象和类)——静态变量与实例变量

静态变量(类变量):
独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字声明。静态方法也是同样,可以直接调用。
静态变量(类变量)具备以下特点:
1.随着类的加载而加载
2.优先于对象存在
3.被所有对象所共享
4.可以直接被类名调用

实例变量:
就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。

两者的区别如下:
1.存储区域不同:
类变量随着类的加载而存储于方法区的静态存储区中。
实例变量随着对象的建立而存储于堆内存中
这也是为什么实例方法和变量需要在实例创建后才能由实例引用,而类变量随着类的加载就可以引用。

下图为实例变量的存储结构示意图:
在这里插入图片描述
2.静态变量与类相关,实例变量则与实例相关

3.内存分配方式不同。

4.生命周期不同。
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值