类与类加载器
双亲委派模型
从 Java 虚拟机角度讲,只存在两种类加载器:一种是启动类加载器(C++ 实现,是虚拟机的一部分);另一种是其他所有类的加载器(Java 实现,独立于虚拟机外部且全继承自 java.lang.classLoader)
- 启动类加载器
加载 lib 下或被 -Xbootclasspath 路径下的类 - 扩展类加载器
加载 lib/ext 或者被 java.ext.dirs 系统变量所指定的路径下的类 - 应用程序类加载器
ClassLoader负责,加载用户路径上所指定的类库。
除顶层启动类加载器之外,其他都有自己的父类加载器。
工作过程:如果一个类加载器收到一个类加载的请求,它首先不会自己加载,而是把这个请求委派给父类加载器。只有父类无法完成时子类才会尝试加载。
破坏型双亲委派
类加载机制和双亲委派机制
类加载机制就是虚拟机描述类的数据从Class文件加载到内存,对其进行转换解析,最后形成可以被虚拟机直接使用的java类型,这就是类加载机制。
双亲委派机制就是对象接受请求后不会先尝试自己去加载,而是委派给父类去加载,父类也不会直接加载,而是尝试委派给父类去加载,最后都委派到顶层的启动类加载器中,若顶层的启动类加载器无法加载,就交给下一级,下一级加载不了再交给下一级,最后若自己无法加载则抛出异常。主要说就是有优先级的特点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。