JVM内存区域划分和运行时的使用情况

1. JVM对自己的内存进行了划分,分成了五个区域

a.寄存器:内存和CPU之间(系统相关)

b.本地方法栈:JVM调用了系统中的功能(系统相关)

c.方法和数据共享区:运行时期.class文件进入的地方

d. 方法栈:所有方法运行的时候,进入内存中的位置

e.堆:存储的是容器和对象

2. main方法在运行过程中JVM的使用情况

a.在点击run as后,编译产生的.class文件、static方法、static属性进入方法和数据共享区(所以static方法和static变量在编译时执行和加载);

b.接着main方法压栈执行,main方法是程序执行的入口,所以main方法都是最先进入方法栈,在程序执行完毕后,最后弹出方法栈

c.在main方法执行过程中,如果调用了其他的方法,被调用的方法压栈执行,执行完弹出栈

d.在方法执行的过程中变量,常量都在堆内存中存储,引用变量实际上就是指向所存内容的内存地址

    

3.对象在运行时的内存图解

main方法进栈执行,new Car()即相当于在堆内存中划分出一块内存,尽管内存中的属性未赋值,但此时各个属性的默认值都已经放入内存中(如String型放入null,int型放入0等),此时其属性在内存中也已经占据位置;然后在给对象赋值的过程中,对象相应属性的位置替换为赋值的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

11Jeffrey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值