毕节地区建设网站,电子商务平台的相关性主要指哪几种相关性,wordpress爱主题,科技作品手工目录
一、进行类加载
二、堆中分配内存
1、怎么输出GC日志#xff1a;
2、内存分配的两种方式#xff1a;
3、内存分配过程中并发控制的两种方式#xff1a;
三、内存空间初始化
四、对象头初始化#xff08;对象头包含哪些信息#xff1f;#xff09;
五、执行构…目录
一、进行类加载
二、堆中分配内存
1、怎么输出GC日志
2、内存分配的两种方式
3、内存分配过程中并发控制的两种方式
三、内存空间初始化
四、对象头初始化对象头包含哪些信息
五、执行构造函数。
补充1对象的内存布局一个Java对象在堆中都需要存储它的什么信息
补充2对象的2种访问定位方式我们知道虚拟机栈中存储了对象的引用就是一个地址吧我觉得那怎么通过这个引用来获得这个对象的所有信息 一、进行类加载 二、堆中分配内存
1、怎么输出GC日志
--XX:PringGCDetails
2、内存分配的两种方式 如果JVM带有空间压缩功能那堆空间就比较规整这时候可以用指针碰撞空闲区和已使用区之间的指针向空闲区移动反之用空闲列表典型如使用标记-清除算法的CMS 3、内存分配过程中并发控制的两种方式 方案一CAS乐观锁方案二给每一个线程单独开一个内存缓冲区每个线程的缓冲区用完后采用CAS 三、内存空间初始化 初始化为零值 四、对象头初始化对象头包含哪些信息 ① 对象的哈希码哈希码和对象存储地址有关可以通过obj.toString()来看哈希码是啥toString()函数实现如下 public String toString() {return getClass().getName() Integer.toHexString(hashCode());} ② GC分代年龄 ③ 一些锁信息 五、执行构造函数。 补充1对象的内存布局一个Java对象在堆中都需要存储它的什么信息 对象头哈希码、gc年龄、锁信息等等实例数据部分用户代码定义的内容对齐填充补位用 补充2对象的2种访问定位方式我们知道虚拟机栈中存储了对象的引用就是一个地址吧我觉得那怎么通过这个引用来获得这个对象的所有信息 直接指针引用存储的就是对象在Java堆中的地址在《深入理解JVM》这本书中对象实例存储在堆里但对象类型信息存储在方法区所以堆中还需要存储一个方法区的地址句柄在堆中开一个句柄池分别存储对象实例的地址和对象类型信息的地址对比对于直接指针因为少了一层访问所以相比句柄方法速度快但当对象位置移动频繁时栈中的地址就得经常变化。而句柄这种方式在对象位置移动时只需要修改句柄池的信息。那为什么修改句柄池就比修改虚拟机栈要优呢 书中的图只画了对象实例对应栈中一个引用的情况实际上因为虚拟机栈中会有多个引用同时指向堆中的对象实例所以对象实例位置改变这些引用都要改变而句柄就相当于对这些引用进行了一次汇总。