ICode9

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

jvm

2022-08-19 23:30:11  阅读:154  来源: 互联网

标签:loadClass 对象 扫描 算法 引用 jvm 加载


1.jvm的简单抽象模型:

  

 

 

2.类加载机制

       双亲委派模型是为了防止jdk核心类库被篡改,如果需要打破可以重写Classloader.loadClass方法。r

 

双亲委派模型: 一个类加载器收到一个类的加载请求,他会先判断自身是否已存在该类,如果不存在上抛给上一级类加载器ClassLoader.loadClass()的区别。    类加载器会将所有需要加载的类先传递给上抛,在最顶层开始加载,如果不存在再该类加载器中才会给下一层。 这样做的好处是为了,防止更改核心类库。 自定义加载器,可以打破双亲委派,对ClassLoader.loadClass(),findclassLoad进行重写,因为自定义类加载期中有唯一的类路径     3.运行时数据区:   

 

  1. 涉及到分代理论,复制算法,可达性算法,标记清除算法,标记压缩算法,三色标记算法。

 

  4. parNew +  cms

 

 

 

增量更新:     当黑色对象插入新的指向白色对象的引用关系时, 就将这个新插入的引用记录下来, 等并发扫描结束之后, 再将这些记录过的引用关系中的黑色对象为根, 重新扫描一次。 这可以简化理解为, 黑色对象一旦新插入了指向白色对象的引用之后, 它就变回灰色对象了。 原始快照 【SATB】:     当灰色对象要删除指向白色对象的引用关系时, 就将这个要删除的引用记录下来, 在并发扫描结束之后,再将这些记录过的引用关系中的灰色对象为根, 重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑色(目的就是让这种对象在本轮gc清理中能存活下来,待下一轮gc的时候重新扫描,这个对象也有可能是浮动垃圾)以上无论是对引用关系记录的插入还是删除, 虚拟机的记录操作都是通过写屏障实现的。

 

 5.老年代担保机制

 

标签:loadClass,对象,扫描,算法,引用,jvm,加载
来源: https://www.cnblogs.com/dhdnm/p/16606898.html

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

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

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

ICode9版权所有