java 类加载器和类加载方式java
一 类加载器spa
一、Bootstrap Loader(启动类加载器):加载System.getProperty("sun.boot.class.path")所指定的路径或jar。命令行
二、Extended Loader(标准扩展类加载器ExtClassLoader):加载System.getProperty("java.ext.dirs")所指定的路径或jar。在使用Java运行程序时,也能够指定其搜索路径,例如:java -Djava.ext.dirs=d:\projects\testproj\classes HelloWorldget
三、AppClass Loader(系统类加载器AppClassLoader):加载System.getProperty("java.class.path")所指定的路径或jar。在使用Java运行程序时,也能够加上-cp来覆盖原有的Classpath设置,例如: java -cp ./lavasoft/classes HelloWorldclass
ExtClassLoader和AppClassLoader在JVM启动后,会在JVM中保存一份,而且在程序运行中没法改变其搜索路径。若是想在运行时从其余搜索路径加载类,就要产生新的类加载器。
二 类加载方式test
类加载有三种方式:扩展
一、命令行启动应用时候由JVM初始化加载搜索
二、经过Class.forName()方法动态加载程序
三、经过ClassLoader.loadClass()方法动态加载方法