- 类加载器原理
- 类加载器的作用:把class文件字节码内容加载到内存种,并将这些静态数据转换为方法区中运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。
- 类加载一次会被缓存,
-
类加载器树状结构,双亲委托代理机制
·引导类加载器:使用C++实现
·扩展类加载器:继承ClassLoader。 由sun.misc.Launcher
·应用程序类加载器:Java应用的类都由他完成的。
·自定义类加载器
image
·双亲委托代理机制
·父类加载器优先加载,如果父类不能加载,就交给儿子,如果父类能加载,就交给父类。例如Object类,由于启动类加载器中有了,在加载String类时优先使用启动器加载器。用户自定义的Object类不会被加载,保障了核心类安全。
- 自定义类加载器
·继承java, 不同加载器加载的同一类,不是同一个地址,JVM不认为是同一个类。
线程上下文类加载器
相当于开个后门,避免双亲委托代理机制。服务器加载原理和OSGI介绍
模块自己带加载器走。