类初始化
- 类初始化是执行<clinit>()方法,它的代码由两部分组成:
- (1)静态变量的显式赋值
- (2)静态代码块
- 它俩是按照编写的顺序组装而成
- 每一个类的类初始化方法只会执行一次
- 子类初始化时会先检查父类,如果父类还没有初始化,会先完成父类的初始化,即先执行父类的<clinit>()方法
实例初始化
- 一个类可能会有1~n个的<init>方法,有几个看声明了几个构造器
- 实例初始化是执行对应的<init>方法,具体执行哪个,看new后面调用的是哪个构造器
- 实例初始化由一下四个部分组成:
- ①super()或super(实参列表)==>调用父类的对应的实例初始化方法,说明创建子类对象时,也会导致父类的实例初始化方法执行的
- 其中super()或super(实参列表)是原先写在构造器首行的
- ②实例变量的显式赋值
- ③非静态代码块
- ④构造器中的代码
- 其中②和③是按代码中编写的顺序组装,①和④是一头一尾
- 实例初始化,每次new对象时执行,new一个执行一个
类初始化和实例初始化
如果第一次使用某个类时就是在创建对象,那么要先完成类初始化,然后再执行实例初始化
原文地址:https://www.cnblogs.com/daidai66/p/11992967.html
时间: 2024-10-14 22:12:57