为了账号安全,请及时绑定邮箱和手机立即绑定

深入理解Java虚拟机-学习笔记-1内存分区

标签:
Java

Java虚拟机数据区域:

  1. 程序计数器 指令指示

  2. 虚拟机栈 线程私有 包括局部变量表等

  3. 方法区 加载的类信息、常量、静态变量

  4. 运行时常量 编译器生成的字面量和符号引用(不是很懂)

  5. Java堆 堆

  6. 本地方法区 native方法

  7. 直接内存 给NIO用 netty中有用到



对象的创建:

  1. 对象内存分配方法 指针碰撞(内存绝对规整) 空闲列表(内存不规整)

  2. 内存分配的线程安全问题 CAS 或者 TLAB

  3. 基本设置及init


对象的布局:

  1. 对象头 Mark Word(HashCode、GC分代年龄、锁状态、等),类型指针(指向类元数据,用以确认是哪个类的实例)

  2. 实例数据部分 各种类型的字段内容

  3. 对齐部分 不必须

对象的访问:

  1.句柄访问 堆中分配一块句柄池的内存 优势是对象移动之后不需要改变reference,只需改变句柄中的指针

  2.直接指针访问 优势 访问速度快 Sun Hotspot选择的方式


内存异常实战:待……




 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消