【Java学习】类的加载与实例化过程

目录

一、类加载(方法区)

1.父类静态初始化

2.子类静态初始化

二、实例化(堆)

1.赋零值

2.构造初始化

2.1父类构造初始化

2.2子类构造初始化


一、类加载(方法区)

首次被使用时只一次静态加载

1.父类静态初始化

(父类)静态变量赋零值+静态变量就地初始化+静态代码块

2.子类静态初始化

(子类)静态变量赋零值 + 静态变量就地初始化 + 静态代码块


二、实例化(堆)

每次创建对象时对实例的加载

1.赋零值

父子所有实例变量赋零值

2.构造初始化

2.1父类构造初始化

【先:子类构造方法第一行的super()转先去执行 上一层父类构造方法】

(父类)实例变量就地初始化+实例代码块+构造方法体

2.2子类构造初始化

【后:回到子类构造方法

(子类)实例变量就地初始化 + 实例代码块 + 构造方法体​