java代码: 

public interface Assembly{
    publicvoid start();
}

publicclass Word implements Assembly{
    static{
        System.out.println("Word static initialization!");
    }   

    public  void start(){
        System.out.prinlnt("Word starts");
    }
}

publicclass Office{
    publicstaticvoid main(String args[])throwsException{
        Office off = new Office();
        System.out.println("类别准备载入");
        Class c = Class.forName(arg[0],true,Office.class.getClassLoader());
        System.out.println("类别准备实例化");
        Object o = c.newInstance();
        Object o2= c.newInstance();
   }
}

forName方法中的第二参数是true时,显示的是:
类别准备载入
Word static initialization!
类别准备实例化
forName方法中的第二参数是false时,显示的是:
类别准备载入
类别准备实例化
Word static initialization!

当true的时候是主动使用,当fasle的时候是被动使用.
在P162说:java虚拟机在首次使用类型时初始化它们。只有6种活动被认为是主动使用:创建类的新实例,调用类中声明的静态方法,操作类或者接口中声明的非常量静态字段,调用Java API中特定的反射方法,初始化一个类的子类,以及指定一个类作为Java虚拟机启动时的初始化类。

Class c = Class.forName(arg[0],true,Office.class.getClassLoader())
; 中的 Office,改成Word,不管forName的第二参数是否是fasle与true,都是
类别准备载入
Word static initialization!
类别准备实例化