Java 类装入器是否保证不装入未使用的类?
2022-09-04 21:00:20
是否可以保证(默认的系统)Java 类装入器不会尝试装入正在运行的代码中未引用的类?举几个例子来说明我的意思:
- 我正在使用一个我知道包含对另一个类的引用,但我只使用框架中不包含这些引用的部分。省略是否安全?
framework.jar
library.jar
library.jar
- 静态块在首次装入类时运行。如果没有正在运行的代码包含对特定类的引用,是否确定它的静态块未运行?
快速测试它似乎像上面假设的那样工作,无论如何加载未使用的类都没有多大意义,但是对此有什么保证吗?
加法:似乎我上面的“静态块在首次加载类时运行”语句有些不正确。绝对可以在不运行类(另一件事)的情况下加载它们(一件事)。所以我对这两种情况都感兴趣;保证类不会加载,也不会运行。