Java常见面试题:ClassLoader加载-阿里云开发者社区

开发者社区> 面试一点通> 正文

Java常见面试题:ClassLoader加载

简介: ClassLoader是一个类加载器,在Java里面类加载器并不只有一个,我们自己所编写的类加载器往往都去继承ClassLoader,所以自己的加载器是最后一次执行的。

ClassLoader是一个类加载器,在Java里面类加载器并不只有一个,我们自己所编写的类加载器往往都去继承ClassLoader,所以自己的加载器是最后一次执行的。

image.png

所有的Java程序类加载器一共分为两套类加载器:双亲加载;

(1)系统中的类都会由一个系统内部最高的类加载器负责加载,如果启动的时候要加载的系统类太多了,那么一定会造成启动变慢,所以JDK1.9才提出了一个模块化设计;

(2)如果用户自己定义的类,会使用其它的类加载器(ExtClassLoader、AppClassLoader、自己定义的的类加载器),这样可以避免系统安全问题。

什么是系统安全问题?

比如在Java里面有一个java.lang.string,如果你现在定义了完全一样的java.lang.string类,那么最终所带来的问题就有可能造成安全隐患,所以JDK在设计的时候为了防止这种问题的出现,采用了双亲加载机制,以保证系统安全。

同时使用自定义的类加载器还有一个好处,可以由用户自己来定义类文件的来源,默认情况下的类加载器(99%是够用的)都是通过ClassPath加载的,但是使用了自定义的加载器可以通过远程或文件进行加载。

更多专业知识,面试技巧就在面试一点通,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

帮你拿下好工作

官方博客
官网链接