Java虚拟机数据区域:
程序计数器 指令指示
虚拟机栈 线程私有 包括局部变量表等
方法区 加载的类信息、常量、静态变量
运行时常量 编译器生成的字面量和符号引用(不是很懂)
Java堆 堆
本地方法区 native方法
直接内存 给NIO用 netty中有用到
对象的创建:
对象内存分配方法 指针碰撞(内存绝对规整) 空闲列表(内存不规整)
内存分配的线程安全问题 CAS 或者 TLAB
基本设置及init
对象的布局:
对象头 Mark Word(HashCode、GC分代年龄、锁状态、等),类型指针(指向类元数据,用以确认是哪个类的实例)
实例数据部分 各种类型的字段内容
对齐部分 不必须
对象的访问:
1.句柄访问 堆中分配一块句柄池的内存 优势是对象移动之后不需要改变reference,只需改变句柄中的指针
2.直接指针访问 优势 访问速度快 Sun Hotspot选择的方式
内存异常实战:待……
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦