类执行时的内存变化图

在这里插入图片描述
在执行main方法前,加载创建好的zuoye01001类里设置的参数、局部变量。
在虚拟机栈开辟main方法栈帧,执行main方法线程导入(zuoye01001)参数、局部变量 (args:null)。
//创建引用类型4字节。

1、创建zuoye01001 q=new zuoye01001();对象,此时q=null。
2、在在虚拟机栈开辟zuoye01001对象栈帧。(在执行完q=0x11时被删除)
3、堆里生成 q对象地址:0x11(name:null,age:0,fady:(在zuoye01001类里查找)),
0x11地址(赋值)给q。
4、main方法里执行( 字符串q.name=“许长”;int类型q.age=58;方法q.fady();)在对应的地址0x11里进行
赋值,其中字符串“许长”应需要到zuoye01001类(常量池)里查找并把地址赋值给q.name,
5、在在虚拟机栈开辟q.fady方法栈帧,默认传送参数this(隐式参数)0x11(q对象地址),方法内容
(System.out.println(“姓名:”+this.name+",年龄"+this.age);)。(执行打印完被删除)

1、创建zuoye01001 w=new zuoye01001();对象,此时w=null。
2、在在虚拟机栈开辟zuoye01001对象栈帧。(在执行完w=0x11时被删除)
堆里生成 w对象地址:0x12(name:null,age:0,fady:(在zuoye01001类里查找)),0x12地址(赋值)
给q。
3、main方法里执行( 字符串w.name=“林子”;int类型w.age=60;方法w.fady();)在对应的地址0x12里进
行赋值,其中字符串“林子”应需要到zuoye01001类(常量池)里查找并把地址赋值给w.name,
4、在在虚拟机栈开辟w.fady方法栈帧,默认传送参数this(隐式参数)0x12(w对象地址),方法内容
(System.out.println(“姓名:”+this.name+",年龄"+this.age);)。(执行打印完被删除)
当程序结束时堆里面的对象会被清理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值