一个类中的方法加载顺序
1 代码
package parent;
public class Father {
static {
System.out.println("父类静态代码块无输出");
}
static int a = 1;
{
a = a + 10;
System.out.println("父类构造代码块:a: " + a);
}
public Father() {
a = a + 100;
System.out.println("父类构造方法执行,a:" + a);
}
public void putong() {
a = a + 1000;
System.out.println("父类普通方法" + a);
}
static {
a = a + 500;
System.out.println("父类静态代码块" + a);
}
public static void staticMethod() {
a = a + 10000;
System.out.println("父类静态方法a:" + a);
}
private void putong2() {
a = a + 55;
System.out.println("父类私有普通方法" + a);
}
public static void main(String[] args) {
Father father = new Father();
System.out.println("=================================");
System.out.println("=======无论是普通、静态、私有方法都是在方法调用的时候才会执行");
System.out.println("=================================");
father.putong();
staticMethod();
father.putong2();
}
}
2. 输出结果
父类静态代码块无输出
父类静态代码块501
父类构造代码块:a: 511
父类构造方法执行,a:611
=================================
=======无论是普通、静态、私有方法都是在方法调用的时候才会执行
=================================
父类普通方法1611
父类静态方法a:11611
父类私有普通方法11666
3. 总结
在一个类中,初始化得顺序是:
0. 静态代码块和静态变量的初始化顺序 是谁在前谁先加载
1. 静态变量
1.静态代码块
3. 构造代码块
4. 构造方法
5. 普通方法和静态方法都是在方法调用得时候才会执行
如果存在继承关系,类的加载顺序又该如何,看这篇
https://blog.csdn.net/qq_39455116/article/details/83377068
https://blog.csdn.net/qq_39455116/article/details/83377068