java对象的创建

时间:2022-12-07 14:56:03


1. java对象创建的方式

java对象的创建

2. java对象创建的过程

1) new

2) 检查new指令的参数是否能在常量池中定位到一个类的符号引用

3) 检查这个符号引用代表的类是否已被加载、 解析和初始化过。 如果没有, 那必须先执行相应的类加载过程

4) 在类加载检查通过后, 接下来虚拟机将为新生对象从Java堆中分配内存

5) 内存分配完成后, 虚拟机需要将分配到的内存空间都初始化为零值,保证了对象的实例字段在Java代码中可以不赋初始值就直接使用

6) 虚拟机要对对象进行必要的设置,主要是对象头中的信息,包括:对象是哪个类的实例、 如何才能找到类的元数据信息、 对象的哈希码、 对象的GC分代年龄、是否启用偏向锁

7) init

java对象的创建

简:

java对象的创建

java对象的创建

3. 类加载过程

​​java类的加载机制_价值成长的博客-CSDN博客_java 加载机制​​

虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的 java 类型。

java对象的创建

4. java对象的内存分配

java对象的创建

5. java对象的并发问题

java对象的创建

什么是TLAB?

可以把内存分配的动作按照线程划分在不同的空间之中进行,每个线程在Java堆中预先分配一小块
内存,这就是TLAB(Thread Local Allocation Buffer,本地线程分配缓存) 。虚拟机通过 -
XX:UseTLAB 设定它的。