Java中jvm内存的理解

JVM内存可主要划分为三个部分

1.方法区内存(method area)
存储.class相关信息,包含方法的信息。

2.栈(stack)
方法中的局部变量存放在此。
方法的运行一定在栈当中。
局部变量: 方法中的参数,或者方法体{}内部的变量。

3.堆(heap)
对象在堆当中分配内存,对应的地址存储在栈区的引用中。
堆内存里面的数据,都有相应的默认值。

参数传递、弹栈和堆内存回收

1.调用一个方法时,实参传递给形参的是值。单向传递:调用方法的实参的值不变,被调方法的形参被处理时不影响主调方法的实参。

2.由main()方法开始,依次按调用顺序执行方法。方法执行时,被分配内存压栈,执行完毕后弹栈,释放内存。

3.栈中方法体代码创建对象时,在栈区存在引用(局部变量),在堆中生成对象并分配内存,对象的内存地址存储在引用中。对象的代码执行完毕且没有引用含有指向它的地址时,对象占有的内存被回收。

例子1:请添加图片描述请添加图片描述

可能有误

例子2

来自博主MilkBerge

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值