java内存区域管理机制

java内存区域

java运行时内存区域.png

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

对象创建过程

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容