📜  什么是Java中的类加载和静态块?(1)

📅  最后修改于: 2023-12-03 15:21:47.712000             🧑  作者: Mango

什么是 Java 中的类加载和静态块?

在 Java 中,类加载器是 Java 虚拟机(JVM)用于在运行时查找并加载 Java 类文件的一部分。Java 中的类加载器分为四种类型:引导程序类加载器、扩展类加载器、系统类加载器和用户自定义类加载器。当 JVM 启动时,它首先使用引导程序类加载器加载 Java 核心类库。接着扩展类加载器加载 Java 的扩展类库。最后,系统类加载器加载应用程序类和资源。

除了类加载器之外,Java 中还有静态块。静态块是类中的一个特殊块,它在类被加载到内存中时执行,且只会执行一次。静态块用于执行类级别的操作,例如初始化静态变量、进行日志记录等。

下面我们来看一个例子:

public class MyClass {
    static {
        System.out.println("静态块执行了!");
        int result = add(1, 2);
        System.out.println("1 + 2 = " + result);
    }
    
    public static int add(int a, int b) {
        return a + b;
    }
}

这个例子中有一个名为 MyClass 的类,该类包含一个静态代码块。这个静态代码块中输出了一条消息,并调用了一个名为 add 的静态方法。当我们第一次实例化或调用 MyClass 类时,静态块就会执行,然后我们就会看到输出的结果。

public static void main(String[] args) {
    MyClass myClass = new MyClass();
}

这段代码执行后,控制台会输出:

静态块执行了!
1 + 2 = 3

总结:

类加载器是 JVM 用来查找并加载 Java 类文件的一部分。Java 中有四种类型的类加载器:引导程序类加载器、扩展类加载器、系统类加载器和用户自定义类加载器。静态块是类中的一个特殊块,它在类被加载到内存中时执行,且只会执行一次。静态块用于执行类级别的操作,例如初始化静态变量、进行日志记录等。