- 博客(2)
- 收藏
- 关注
原创 HotSpot虚拟机对象探秘
1)对象的创建 虚拟机遇到一条new指令后,首先检查指令的参数是否在常量池中定位到一个类的符号引用,并检查符号引用代表的类是否已被加载,解析和初始化。类加载检查之后虚拟机会分配内存,即把一块确定大小的内存从Java堆中划分出来,当堆为绝对规整,使用指针碰撞的方式,当堆不是规整的,需要维护一个列表记录内存,称为空闲列表。Java堆是否规整由垃圾收集器是否有压缩整理决定。 在创建对象的并发考虑上,一种是分配内存空间动作的同时进行同步处理,采用CAS配上失败重试的方法保证更新操作的原子性。另一种是把内存分配的动
2021-02-17 13:59:19
107
原创 运行时数据区域
运行时数据区域 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》中规定,jvm所管理的内存大致包括以下几个运行时数据区域:程序计数器、java虚拟机栈、本地方法栈、java堆、方法区、运行时常量池(方法区的一部分)、直接内存。 红色线程共享部分跟随虚拟机启动而存在。黄色线程隔离部分跟随线程启动
2021-02-16 20:55:32
136
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人