一、类初始化
- 什么时候类会进行初始化?
1、包含main方法的类会进行初始化
2、子类初始化会触发父类的初始化 - 类初始化的过程中都干了什么?
1、调用ciinit()方法,只执行一次:这个方法中一般是一些静态变量的显示赋值语句和静态代码块,赋值语句优先静态代码块执行
二、类实例化
- 什么时候会进行实例初始化?
1、 new
2、class.newInstance - 类实例化的过程中都干了什么?
1、调用init()方法,可能有多个,有几个构造器就有几个init:这个方法中一般是一些非静态变量的显示赋值语句和非静态代码块以及对应的构造函数赋值语句优先静态代码块执行
2、每次创建实例对象,调用对应的构造器的init
3、每个构造方法的首行都是super函数,只不过被隐藏了