![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机
星痕_star
这个作者很懒,什么都没留下…
展开
-
内存分配与垃圾回收(一)
1. 使用new关键字一个java对象的过程Jvm首先会检查这个new指令的的参数能否在常量池定位到一个类的符号引用,然后检查这个符号引用相对应的类是否已经成功经历加载、解析和初始化等步骤,当类完成装载步骤之后,就已经完全可以确定出创建对象实例时所需要的内存空间大小,接下来jvm将会对其进行内存分配,以存储生成的对象实例,当分配好所需的内存空间后,jvm开始初始化对象实例,首先对分配好的内存空间进...原创 2018-04-07 18:03:38 · 163 阅读 · 0 评论 -
内存分配与垃圾回收(二)
1. 对象内存布局一个对象本身的内存结构需要一种描述方式,这个描述信息(类描述)是以字节码的方式存储在方法区的,虚拟机使用对象头的元数据指针指向定位到当前对象的具体目标类型(类对象)。对象头的Mark word用于存储对象自身的运行时数据,如哈希码(HashCode)、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳、对象分代年龄。实例数据主要用于存储定义在当前对象中各种类型的...原创 2018-04-07 18:45:03 · 128 阅读 · 0 评论 -
Java虚拟机运行时内存结构
任何运行时的程序或者数据都需要依靠内存作为存储介质,否则程序将无法正常运行。线程共享内存区:堆区、方法区和运行时常量池 线程私有内存区:PC寄存器、java栈和本地方法栈Java堆区和方法区在jvm启动时被创建,并且它们在实际内存空间中可以是不连续的。1. Java堆区Java堆区是一块用于存储对象实例的内存区,同时也是GC执行垃圾回收的重点区域,因此GC性能在大内存的使用上很容易成为性能瓶颈,...原创 2018-04-07 18:53:12 · 165 阅读 · 0 评论