Java 类加载机制:静态代码块和构造方法的执行顺序
在 Java 中,类加载是一个重要的过程,它决定了代码的执行顺序。本文将通过一个示例来阐述类加载机制,以及静态代码块、构造方法和类方法的执行顺序。
public class personStatic {
/*
2. personStatic 的类加载过程中,执行静态代码块
*/
static {
System.out.println('这是静态代码块执行');
}
public void personStatic() {
System.out.println('这是构造方法');
}
static class student {
public void student() {
System.out.println('这是学生方法');
personStatic personStatic = new personStatic();
}
}
// 1.启动main方法触发PersonStatic类的类加载
public static void main(String[] args) {
// 3. 类加载结束后,启动main方法
System.out.println('这是main方法');
// 4. 创建student类 非静态上下文 无法访问 静态上下文
student s = new student();
}
}
为什么没有输出 '这是学生方法'?
没有输出 '这是学生方法' 是因为在 student 类中的方法名和类名相同,导致该方法被误认为是构造方法。在创建 student 对象时,实际上是调用了默认的构造方法,而不是 student 方法。
如果想要输出 '这是学生方法',需要将 student 方法改名为其他名称。例如:
public void showStudent() {
System.out.println('这是学生方法');
personStatic personStatic = new personStatic();
}
通过以上分析,我们可以更好地理解 Java 类加载机制,以及静态代码块、构造方法和类方法的执行顺序。在实际编程中,需要注意方法命名规范,避免出现类似的误解。
原文地址: https://www.cveoy.top/t/topic/qkpo 著作权归作者所有。请勿转载和采集!