首先来说说Classloader,类加载包括:引导类加载器,扩展类加载器,系统类加载器,自定义加载器他们分别加载的范围,已经分类,主要分为两类加载器,一种是不是java编写的,一种是java编写的
引导类加载器: 不是java编写的 c编写的加载器,所有我们在代码中是获取不到的,是最顶层的加载器:
这里就是获取到的就是null,范围:java javax,sun下的包都是用他进行加载
扩展类加载器: 负责 rt.jar下面类的加载器 ExtClassloader
系统类加载器:自己创建的类的加载器 appClassloader
现在我们来说说机制,理解机制就知道了类加载是怎么回事了。 双亲委派机制
双亲委派机制:通俗的说就是先委托父类进行加载,父类加载不到时,在向上委托,一直到引导类加载器都加载不到时,在由自己去进行加载。
这里,大家可以去试试,在当前项目中新建一个 java.lang包下面新建一个String类,然后你在引用的时候,会发现他不会使用 我们新建的String类?
即是当一个classloader加载一个Class的时候,这个Class所依赖的和引用的其它Class通常也由这个classloader负责载入
这里就是说,当一个类进行加载时,他所引用的类也是用这个加载器进行加载,直到加载不到为止
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。