java中,当实例化子类对象时,如果有以下几个会被加载,那么加载的顺序是什么? (1)父类静态代码块 (2)父类构造函数 (3)父类非静态代码块 (4)子类静态代码块 (5)子类构造函数 (6)子类非静态代码块
时间: 2024-06-04 20:06:59 浏览: 83
在Java中,当实例化子类对象时,加载的顺序如下:
1. 父类静态代码块,按照代码顺序逐个执行。
2. 子类静态代码块,按照代码顺序逐个执行。
3. 父类非静态代码块,按照代码顺序逐个执行。
4. 父类构造函数,执行父类的构造函数。
5. 子类非静态代码块,按照代码顺序逐个执行。
6. 子类构造函数,执行子类的构造函数。
需要注意的是,父类的静态代码块只会执行一次,在类被加载时执行。而父类的非静态代码块和构造函数会在每次实例化父类对象时执行。同样,子类的静态代码块也只会执行一次,在类被加载时执行;子类的非静态代码块和构造函数会在每次实例化子类对象时执行。
相关问题
java类的初始化方式有哪些
Java类的初始化方式主要有以下几种:
1. 静态初始化块:使用 static 关键字修饰的静态代码块,会在类加载时执行,且只会被执行一次。
2. 静态变量初始化:可以在声明静态变量时直接进行初始化,也会在类加载时执行。
3. 实例初始化块:使用 { } 包含的代码块,会在每次创建对象时执行。
4. 构造方法:用于对象的初始化,可以通过重载构造方法的方式实现不同的初始化方式。
需要注意的是,如果一个类有父类,则其初始化顺序是先初始化父类,再初始化子类。同时,静态初始化块和静态变量初始化的执行顺序是根据定义的顺序来执行的。
阅读全文