java内存区域管理机制

java内存区域

java运行时内存区域.png

特例:
直接内存->堆外内存,不属于java运行时数据区的一部分,常见的NIO

对象创建过程

  1. new指令;
  2. 检查能否在常量池中定位到一个类的符号引用,检查该类是否已经被加载、解析和初始化,如果没有需要执行相应的类加载过程;
  3. 为新生对象分配内存:基于不同的垃圾回收算法决定使用指针碰撞or空闲列表;
  4. 并发问题处理:1-同步,基于cas机制和失败重试的方式,2-本地线程分配缓冲(TLAB),每个线程在java堆中预先分配一小块内存;
  5. 对象头设置:相关的元数据信息,哈希码,GC分代年龄等信息

结语:java内存区域还有诸多细节,不过开发关注的主要就是这上诉两部分。

你可能感兴趣的:(java内存区域管理机制)