2021-3-8对象内存结构、成员变量、局部变量

本文详细介绍了Java内存结构中的栈、堆和数据共享区,强调了它们各自的作用、存储位置、容量和速度特点。栈主要用于存储基本类型和局部变量,而堆用于存储引用数据类型,数据共享区存储类的方法。成员变量和局部变量的生命周期、作用范围和默认值也进行了区分。理解这些概念对于优化Java程序的性能至关重要。
摘要由CSDN通过智能技术生成

对象内存结构

栈:用于存储基本数据类型的值或者是局部变量。先进后出,存取的容量小,存取的速度快。
堆:用于存储引用数据类型,存取容量大,存取速度慢。。
数据共享区:用于存储引用数据类型,存储一些共享的数据(方法)。
每一个类class加载到数据共享区中,jvm会解析这个类的内容,方法是每个对象共享,但是方法内的属性的是哪个对象调用这个方法,那么这个属性就是在那个对象的。对象存储在堆中,引用存储在栈中,堆中的每一个对象的数据是隔离的。

成员变量

成员变量是定义在类中,也可以叫类的属性。
除了成员变量其余的都是局部变量。
属性的特点:
●作用范围:根据权限修饰符来定。
●存储位置:堆内存或者数据共享区。
●默认值:有。
●生命周期:由jvm通过垃圾回收机制来自动回收。
如果一个引用数据类型的变量nll,意味着不指向任何的对象,堆中的对象就会变成匿名对象,很快就会被gc(垃圾回收器)回收。如果在运行的过程中对象的引用没有被置空,那么对象的属性就会能到大括号结束而被回收。

局部变量

除了在类中定义的变量,其余全是局部变量。(定义在方法中或者语句中)
局部变量的特点:
●作用范围:只限于所定义的大括号,以及大括号内的子括号内有效。
●存储的位置:存储在栈内存中。
●默认值:无,局部变量必须赋值。
●生命周期:所属的大括号结束就消失。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值