对象内存图

压栈:谁在后面进入栈中,就会把之前进入栈中的数据压到脚下。
先进后出

一个对象的内存图
方法区最先有数据,方法区保存的.class相关数据,main方法想运行时需要先进栈(压栈),进来后创建了一个phone对象 对象被赋上地址值0x666对应堆的地址值0x666,堆中保存new出来的对象(凡是new出来的东西都在堆当中),phone对象中有成员变量进入堆中赋上默认值,成员方法进入堆,成员方法被赋上了一个地址值0x333对应方法区中的方法地址值0x333。依次是phone成员变量进栈,改变堆中成员变量的值,成员方法先进入堆的成员方法,堆区找方法区的方法,把成员方法进栈(压栈),方法执行结束后出栈,mian方法结束后出栈
在这里插入图片描述

两个对象访问同一个方法的内存图
在这里插入图片描述

两个引用指向同一个方法的内存图
在这里插入图片描述

使用对象类型作为方法参数
在这里插入图片描述

对象类型作为方法的返回值
在这里插入图片描述

局部变量和成员变量的生命周期不同:
局部变量在栈中:随着方法进栈而诞生,随着方法出栈而消失
成员变量在堆中:随着对象创建而诞生,随着对象垃圾回收而消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值