JVM类加载机制,简单地说就是类管理,也就是我们生成的class文件。
三个步骤:装载(load)、链接(link)、解析(Resolve)、还有初始化(Initialize)。
ClassLoader.loadClass()是ClassLoader的入口点。用于加载class,这与Class类中的静态方法forName()函数的目的一样。但用法有区别
Class clazz = Class.forname("something");或者ClassLoader cl = Thread.currentThread().getContextClassLoader();Class clazz = cl.loadclass("something");
Class.forName()调用Class.forName(name, initialize, loader);也就是说Class.forName("something");等同于Class.forName("something", true, CALLCLASS.class.getClassLoader());
true表示 设置加载类的时候连接该类。
一个类加载的过程使用了一种父类委托模式。(原因:1.避免重复加载,当父类已经加载该类的时候,子类不比加载。2.考虑到安全因素,,如果不使用这种委托模式,那么可以随时使用自定义的String来动态代替Java核心API中的String)
看着它洗涤一缕缕阳光,看着它映衬一片片星辉,