Java
由于其晚绑定和“解释型”的特性,类型的加载是到最晚才进行,一个类型直到被调用构造函数、静态方法或者在字段上使用时才会被加载。
考虑如下代码:
1 | public class A { |
2 | public void doSomething() { |
3 | B b = new B(); |
4 | b.doSomethingElse(); |
5 | } |
6 | } |
代码:B b = new B();等同于B b = Class.forName(“B”, false, A.class.getClassLoader()).newInstance();
这代表着,在类型A中使用到的类型,将由加载了类型A的类加载器来进行加载。