类的加载机制,双亲委托

虚拟机类加载机制:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终造成能够被虚拟机直接使用的Java类型。
类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。
家宴准姐出
其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。java

双亲委派模型:递归

某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,若是父类加载器能够完成类加载任务,就成功返回;只有父类加载器没法完成此加载任务时,才本身去加载。生命周期

使用双亲委派模型的好处在于Java类随着它的类加载器一块儿具有了一种带有优先级的层次关系。例如类java.lang.Object,它存在在rt.jar中,不管哪个类加载器要加载这个类,最终都是委派给处于模型最顶端的Bootstrap ClassLoader进行加载,所以Object类在程序的各类类加载器环境中都是同一个类。相反,若是没有双亲委派模型而是由各个类加载器自行加载的话,若是用户编写了一个java.lang.Object的同名类并放在ClassPath中,那系统中将会出现多个不一样的Object类,程序将混乱。所以,若是开发者尝试编写一个与rt.jar类库中重名的Java类,能够正常编译,可是永远没法被加载运行。

内存

相关文章
相关标签/搜索