gpt4 book ai didi

java - classLoader 什么时候加载导入?

转载 作者:搜寻专家 更新时间:2023-10-30 21:41:05 27 4
gpt4 key购买 nike

假设,我的类只有静态方法。将类加载到内存时,类加载器会加载每个导入的类吗?或者它只会在其中的方法需要访问它时才加载导入?

问题是类加载器是在类加载到内存时加载导入,还是在某些方法要使用它们之前加载导入。如果它是第一个选项,我可能需要划分一些 Util 类,以便更加特化

最佳答案

我想你可以按如下方式测试它:

package pkg1;

public class Test {

static {
System.out.println("Hello 111");
}

public static void meth() {
System.out.println("Hello 222");
}
}

测试 1:

package pkg2;

import pkg1.Test;

public class Tester {

public static void main(String... args) {
Test t;
}
}

什么都不打印。

测试 2:

package pkg2;

import pkg1.Test;

public class Tester {

public static void main(String... args) {
Test.meth();
}

}

打印:

Hello 111Hello 222

所以,仅仅因为你导入了一个类并不意味着类加载器会将该类加载到内存中。它在使用时动态加载。

关于java - classLoader 什么时候加载导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com