A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无奈的我+.l 中级黑马   /  2014-4-3 20:57  /  1854 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

jvm可安多个类加载器,系统默认三个,每个指定的类负责加载不同的类 。
BootStrap(JRE/lib/rt.jar).
ExtClassLoder(JRE/lib/ext/*.jar).
AppClassLoader(Classpath指定的目录或者jar)
三个类加载器加载的这三种类(JRE/lib/rt.jar、 JRE/lib/ext/*.jar 、Classpath指定的目录或者jar)有什么不同啊?
就是这三种类(JRE/lib/rt.jar、 JRE/lib/ext/*.jar 、Classpath指定的目录或者jar)都是干什么的呀?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

1 个回复

倒序浏览
说明了他们是干什么的就能知道他们的不同点了:
bootstrap classloader -引导(也称为原始)类加载器,它负责加载Java的核心类。
extension classloader -扩展类加载器,它负责加载JRE的扩展目录(JAVA_HOME/jre/lib/ext或者由java.ext.dirs系统属性指定的)中JAR的类包。
system classloader -系统(也称为应用)类加载器,它负责在JVM被启动时,加载来自在命令java中的-classpath或者java.class.path系统属性或者 CLASSPATH操作系统属性所指定的JAR类包和类路径。
AppClassLoader主要加载ClassPath下的字节码,类加载器的委托加载原理,首先加载类一直交给父类加载器加载,一直提交到bootstrap,当父类加载器加载不到时,在一层层的返回给下一级加载器加载

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马