meituan到店事业群平台技术部,秋招火热进行中!
内推方式1:
扫二维码内推 https://www.cnblogs.com/CATHY-MU/p/15102097.html
内推方式2:
登陆官网投递( https://campus.meituan.com/ )填写内推码( OYkaHKQ)
平台技术部校招咨询qq群 821133476
类加载器就像搬运工,把.class文件搬进jvm里。
类加载器
jvm内置三个classLoader,除了bootstrapClassLoader其他类加载器由java实现,并继承自java.lang.classloader
- bootstrapClassLoader:启动类加载器,c++实现,最顶层的加载类,负责加载javahome/bin目录下的jar包或者被-xbootclasspath参数指定的路径中的所有类。
- extensionClassLoader: 负责加载jreHome/lib/ext目录下的jar包,或被java.ext.dirs系统变量指定的路径下的jar包
- appClassLoader:应用程序类加载器,负责加载当前应用classpath下的jar包。
双亲委派模型
每个类都有对应的类加载器。
类加载时,会先判断当前类是否被加载过,已加载过的类会直接返回,没加载过会判断其父类是否加载过。完全没加载过,会先委派父类的加载器处理,父类加载器处理不了才会由自己处理。
因此所有的请求最终都传送到bootStrapClassLoader中。
当父类加载器为null时,会使用bootStrapClassLoader作为加载器。
双亲委派模型的好处
可以避免类重复加载。因为相同的类被不同的加载器加载产生的是两个不同的类。
全部评论
(0) 回帖