延迟加载是你在使用的使用加载,而动态加载是在程序运行时才知道类的名字,然后加载类。延迟加载可以应用在动态和非动态的加载上。
动态加载的例子
String className = ... // 例如:java.util.List
List list = (List)Class.forName(className).newInstance();
延迟加载的例子
package com.other.test;
public class Test {
public static void main(String[] args)
{
System.out.println("方法调用前!");
Test2.doSomething();
System.out.println("方法调用后!");
}
}
class Test2
{
static//静态块在类被加载时候运行
{
System.out.println("I am now loaded");
}
public static void doSomething() {}
}
资料
http://blog.csdn.net/dynadotwebb/article/details/17447597