java内存中的成员分布以及成员变量与局部变量的对比

xiaoxiao2021-02-28  64

1.java内存中的成员分布

方法区:存放class文件;静态地址-->class文件中和堆内存中保存的都是静态标记(地址),该静态成员变量真正的值在静态区;

堆:存放new出来的东西(在堆中开辟一块空间,将类中的东西[成员变量及其赋值,静态地址等]复制一份给新对象);

栈:局部变量、对象名(指向new的地址);

2.成员变量与局部变量的对比

 

    类中位置

    内存中位置

        生命周期

        初始值

        作用范围

 

        成员变量                                     

 

    类中方法外                   

 

        堆内存                                  

随着对象的创建而出现,

垃圾回收器的回收而消失

有初始值,一般就是数据类型的默认值

         整个类

 

        局部变量

 

    方法内

 

        栈内存

随着方法的入栈而出现,方法的出栈而消失

 没有初始值

定义他的地方开始,到定义他的代码块的结束

若是对此理解不深刻,可做附加上机练习和面试题,便于更好的掌握^_^

转载请注明原文地址: https://www.6miu.com/read-2624846.html

最新回复(0)