ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

类加载器的双亲委派原则

2021-05-05 02:02:12  阅读:178  来源: 互联网

标签:委派 标记 清除 Mark 双亲 碎片 父类 加载


一、描述类的装载过程和各个步骤的主要工作

1、加载:使用类的全限定名(包名与类名)从磁盘搜索路径加载此类的二进制字节流(.class文件)

2、链接:验证-准备-解析

(1)验证:验证被加载后的类是否有正确的结构,类数据是否会符合虚拟机的要求,确保不会危害虚拟机安全。

(2)准备:为类的静态变量(static filed)在方法区分配内存,并赋默认初值

(3)解析:将类的二进制数据中的符号引用换为直接引用(老师上课的例子:在16进制显示的.class字节码文件中可以看到常量池里的#XX所对应的指针引用关系)。

 

二、简述类加载器的双亲委派原则即双亲委派原则的意义

原则:某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。

 

意义:

(1)避免类的重复加载

(2)保护程序安全,防止核心的JAVA语言环境遭受破坏(老师上课举的例子:自己定义的String类根本没机会记载,BootstrapClassloader会直接加载JAVA的核心类)

 

 

 

Mark-Compact:“标记-整理”(Mark-Compact)算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存

优点:1、避免标记扫描的碎片问题。2、避免停止复制的空间问题。

缺点:占用计算机资源,效率低

 

Mark-Sweep

优点:1、第一个实现并发垃圾收集的垃圾处理器。2、最短的STW停顿时间,发挥多核CPU并发运行为设计原则。

缺点:1、效率问题,标记和清除两个过程的效率都不高。2、空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多。

 

 

Copy算法

优点:1、适用于“朝生夕死”的区域,如新生的Eden区。2、没有标记和清除过程,实现简单,运行高效。3、复制过去以后保证空间的连续性,不会出现"碎片"问题。

缺点:需要两倍的内存空间。

标签:委派,标记,清除,Mark,双亲,碎片,父类,加载
来源: https://www.cnblogs.com/CCTVCHCH/p/14730780.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有