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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

xw塔伯

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© xw塔伯 初级黑马   /  2019-8-1 19:07  /  1159 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类加载器
        什么是类加载器?
                用来加载.class文件的东西就称为类加载器

        类加载器的作用?
                可以将.class文件从本地磁盘加载到JVM中的方法区中

        类加载器的分类?
                引导类加载器:加载jdk中的jre中的lib里的rt.jar中的资源
                扩展类加载器:加载jdk中的jre中的lib里的ert中的资源
                系统类加载器:加载的是classpath路径下的资源

                最上层:引导类加载器
                其次:扩展类加载器
                最下层:系统类加载器

        类加载器的加载顺序?
                class Demo {
                        public static void main(String[] args) {
                                Person p = new Person();
                                String s = new String();
                        }
                }

                加载顺序:
                1.首先,一切类的加载都是先由最下层,即系统类加载器来加载,但是,由于JVM中具备委托机制,所以,系统类加载器会先委托给上一层来加载,即扩展类加载器来加载,如果扩展类加载器加载不成功,就会在系统类加载器自己的地盘加载,如果系统类加载器加载不成功,就会报NotFoundClassException
                2.其次,委托给扩展类加载器加载,由于委托机制,所以,扩展类加载器会委托上一层来加载,即引导类加载器来加载,如果引导类加载器加载不成功,才会再扩展类加载器自己的地盘加载
                3.最后,引导类加载器由于没有上一层了,所以只能在自己的地盘加载

                Person.class是由哪一个类加载器从本地磁盘加载到方法区中的?
                        系统类加载器加载

                String.class是由哪一个类加载器从本地磁盘加载到方法区中的?
                        引导类加载器加载

                系统类加载是由谁加载,扩展类加载器是由谁加载,引导类加载器是由谁加载?
                        系统类加载器和扩展类加载器也是jdk中提供的来,是由引导类加载器来加载
                        引导类加载器不是一个类,是由C语言编写的,是JVM的一部分

1 个回复

倒序浏览
xw塔伯 来自手机 初级黑马 2019-8-1 19:37:39
沙发
。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马