首先检查一下指定的类是否已经被加载过了,如果加载过了,就不需要再加载了,直接返回。 如果没有加载过此类,那么再判断一下是否有父加载器;如果有父加载器,就调用父加载器,或者调用bootstrap类加载器来加载; 如果父加载器及bootstrap类加载器都没有找到指定类,那么调用当前的类加载器的findClass方法来完成; 还有一...
启动类加载器(Bootstrap ClassLoader),负责加载存放在$JAVA_HOME\jre\lib下,或被-Xbootclasspath参数指定的路径中的,并且能被虚拟机识别的类库(如rt.jar,所有的java.*开头的类均被Bootstrap ClassLoader加载)。启动类加载器是无法被Java程序直接引用的。 扩展类加载器(Extension ClassLoader),该加载器由sun.misc....
引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如 rt.jar、charsets.jar等 扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR 类包 应用程序类加载器:负责加载ClassPath路径下的类包,主要就是加载你自己写的那 些类 自定义加载器:负责加载用户自定义路径下的类包 ...
启动类加载器(Bootstrap Class Loader): 这个类加载器负责加载存放在<JAVA_HOME>\lib目录, 或者被-Xbootclasspath参数所指定的路径中存放的, 而且是Java虚拟机能够识别的(按照文件名识别, 如rt.jar、 tools.jar, 名字不符合的类库即使放在lib目录中也不会被加载) 类库加载到虚拟机的内存中。 启动类加载器无法...
继承自 URLClassLoader 类,默认加载 %JRE_HOME%/lib/ext 目录下的 jar 包。可以用-D java.ext.dirs 来指定加载位置。-D 是设置系统属性,即System.getProperty()的属性。 1.3 应用类加载器(AppClassLoader) 继承自 URLClassLoader 类,加载当前项目 bin 目录下的所有类。可以通过 System.getProperty("java.class...
启动类加载器(Bootstrap ClassLoader):它是虚拟机的一部分,负责加载JDK的核心类库,如java.lang包中的类。它是虚拟机的内置类加载器,由本地代码实现。 扩展类加载器(Extension ClassLoader):它负责加载Java的扩展类库,即在JRE的lib/ext目录下的jar包。它是由sun.misc.Launcher$ExtClassLoader实现的,并继承自Class...
1 Tomcat启动的时候,用system classloader即AppClassLoader加载{catalina.home}/bin里面的jar包,也就是tomcat启动相关的jar包。 2 Tomcat启动类Bootstrap中有3个classloader属性,catalinaLoader、commonLoader、sharedLoader在Tomcat7中默认他们初始化都为同一个StandardClassLoader实例。具体的也可以在{catalina.home}/bin...
标准扩展类加载器 / PlatformClassLoader 平台类加载器:**>负责加载基本API的扩展类, 它从java.ext.dirs系统属性所指定的目录中加载类库, 或者从JDK安装目录的jre/lib/ext 子目录(扩展目录)下加载类库, 如果把用户创建的JAR文件放在这个目录下, 也会自动由扩展类加载器加载. 扩展类加载器是纯Java类,是Class...