编程

面试题——Java 类加载/创建对象的过程

2019-11-06  本文已影响0人  天命ming

简洁回答:

第一步类加载和初始化(初次使用),具体可分为加载、验证、准备、解析、初始化;第二步创建对象,具体可分为实例对象分配内存、赋值、执行实例初始化代码、返回引用。


详细回答

第一步,类加载和初始化(初次使用)

如果类已经被加载过,则不会执行第一步整个步骤

1. 加载
2. 验证
3. 准备

public static int value= 1,初始化后的值为 0

public static final int value= 1,初始化后的值为 1

4. 解析

符号引用:比如我们规定了json字符串,"{}"表示对象,"[]"表示数组,"{}"和"[]"就相当于符号引用。在JVM中符号引用是用一组符号描述所引用的目标,比如用0x4000声明这是一个枚举类型

直接引用:内存地址(指针/偏移量/句柄)

5. 初始化(先父类,再子类)

第二步,创建对象

1. 在堆区为实例对象分配内存
2. 对实例变量赋默认值
3. 执行实例初始化代码

非静态代码块也叫做实例代码块

4. 将堆区对象的地址赋值给栈区的引用变量


流程图

上一篇 下一篇

猜你喜欢

热点阅读