微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jvm

1.jvm的简单抽象模型:

  

 

 

2.类加载机制

    

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

 

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

 

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

 

  4. parNew +  cms

 

 

 

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

 

 5.老年代担保机制

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐