Tag: 静态初始化程序

如何在Sun的JVM中禁用延迟类加载/初始化?

默认情况下,Sun的JVM都懒惰地加载类并且懒惰地初始化(即调用它们的方法)它们。 考虑以下类ClinitBomb ,它在static{}块期间抛出Exception 。 public class ClinitBomb { static { explode(); } private static void explode() { throw new RuntimeException(“boom!”); } } 现在,考虑如何触发炸弹: public class Main { public static void main(String[] args) { System.out.println(“A”); try { Class.forName(“ClinitBomb”); } catch (Exception e) { e.printStackTrace(System.out); } System.out.println(“B”); ClinitBomb o2 = new ClinitBomb(); System.out.println(“C”); } } 我们保证爆炸发生在B点之前,因为forName的文件说明了这一点; 问题是它是否发生在A点之前( […]