《深入理解java虚拟机》第二章读书心得

刚学习完了这本书的第二章,我做一个总结。
java虚拟机在运行是的数据区如下图所示:
在这里插入图片描述

  1. 程序计数器:内空间比较小,可以看作是当前线程所执行的字节码的行号指示器。

  2. Java虚拟机栈:虚拟机栈描述的是java方法执行的内存模型

  3. 本地方法栈:作用和虚拟机栈类似,只不过本地方法栈是为虚拟使用到的Native方法服务

  4. Java堆:java虚拟机所管理的内存中最大的一块,并且在虚拟机启动时候创建,用来存放实例对象,java堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可。

  5. 方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量池是方法区的一部分。
    程序计数器、java虚拟机栈、本地方法栈是线程隔离的。可以说他们随线程而生,随线程而灭。每个线程有自己独有的区域,互不影响。
    堆和方法区是线程共享的内存区域。
    在HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:
    对象头、实例数据、对齐填充。

  6. 对象头:对象头分为两部分,一部分用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向时间戳等。
    一部分是类型指针,即对象指向它的类元数据的指针。
    2.实例数据: 对象存储的有效信息

  7. 对齐填充:不是必然存在的,仅仅起着占位符的作用。因为HotSpot VM 的自动内存管理要求对象的大小必须是8的倍数,当实例数据部分没有对齐时,需要通过对齐填充来补全。
    本菜鸟自己创建的交流群,欢迎大佬和java学习者加入扣扣群:344635699

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值