JVM对象的内存分配机制

本文详细介绍了Java中的属性和方法机制。首先,讲解了如何通过`new`关键字在堆中创建对象并初始化属性,强调了栈和堆的区别。接着,探讨了方法调用的过程,指出方法执行时会开辟独立的栈空间,执行完毕后空间回收。主要内容包括对象创建、属性赋值和方法调用的内存管理。
摘要由CSDN通过智能技术生成

参考自【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili

属性机制:

 第一行,Cat cat = new Cat(); 首先会加载Cat类信息到方法区(属性,方法),随后new关键字会在堆里开空间(生成地址),并且地址指向的属性赋数据类型的默认值。创建成功后栈中生成一个对象,指向堆区对应的地址。

第二三四行,通过cat找到堆中对应地址,然后找到name,age,color各个对应的地址,其中name和color非基本数据类型,他们在堆中会生成为地址,并在方法区生成地址所对应的值。而基本数据类型则直接在堆中修改值。

方法机制:

 首先,主方法会在栈中开辟一个空间,为了方便解释可以把这个空间称作main栈

第一行, Person p1 = new Person(); 在main栈中开辟p1指向堆中对象

第二行, int returnRes = p1.getSum(10, 20);,调用getSum方法,开辟一个与main栈独立的栈空间,并在里面执行getSum方法,将return的数据传给 returnRes

总结,1.程序执行到方法时,会开辟一个独立的空间(栈空间)

             2.当main方法执行完毕,整个程序退出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值