1

假设我有一堂课:

public class SomeClass {

  public NotPresent1 method1(NotPresent2 input) {return null;}

  public void method2() {}

}

我编译了这个类,但在运行时,NotPresent1 和/或 NotPresent2 不在类路径中。我可以加载那个类吗?我可以实例化这样的类并调用method2()吗?或者我什至可以打电话method1(null)

4

1 回答 1

1

AFAIK 未指定/取决于 VM/JIT 实现。我知道当前的 VM 会尽可能晚地延迟加载类(当调用该类的代码/状态访问时)。这样做是为了加快 Fat Clients (Swing) 的启动时间 ~1.3 左右。然而,积极优化 JIT 可能会提前加载它们(例如,优化服务器端性能)。不要依赖当前关于类加载时间的行为。

于 2012-12-16T13:59:15.300 回答