![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 94
JVM相关
Java学习者柯十一
博客主要记录平时学习的一些新技术和BUG以及算法研究,热衷分享喜欢原创~关注我会给你带来一些不一样的认知和成长。
展开
-
【JVM学习篇】垃圾收集器与底层三色标记算法详解
原始快照就是当灰色对象要删除指向白色对象的引用关系时, 就将这个要删除的引用记录下来, 在并发扫描结束之后, 再将这些记录过的引用关系中的灰色对象为根, 重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑色(目的就是让这种对象在本轮gc清理中能存活下来,待下一轮gc的时候重新扫描,这个对象也有可能是浮动垃圾)增量更新就是当黑色对象插入新的指向白色对象的引用关系时, 就将这个新插入的引用记录下来, 等并发扫描结束之后, 再将这些记录过的引用关系中的黑色对象为根, 重新扫描一次。原创 2023-02-19 22:11:36 · 8254 阅读 · 0 评论 -
【JVM学习篇】对象创建与内存分配机制深度剖析
jdk1.6 update14开始,在64bit操作系统中,JVM支持指针压缩jvm配置参数:UseCompressedOops,compressed–压缩、oop(ordinary object pointer)–对象指针启用指针压缩:-XX:+UseCompressedOops(默认开启),禁止指针压缩:-XX:-UseCompressedOops为什么要进行指针压缩?原创 2023-02-18 19:30:17 · 26689 阅读 · 0 评论 -
【JVM学习篇】JVM内存模型深度剖析与优化
结论:通过上面这些内容介绍,大家应该对JVM优化有些概念了,就是尽可能让对象都在新生代里分配和回收,尽量别让太多对象频繁进入老年代,避免频繁对老年代进行垃圾回收,同时给系统充足的内存大小,避免新生代频繁的进行垃圾回收。因为一个执行过程中,可能cpu时间片被其他线程抢占了,当前线程挂起了,恢复的时候需要依赖程序计数器才能知道执行到什么位置了。每执行完一行代码,字节码执行引擎都会动态的修改程序计数器的值(执行那一行代码在内存中的位置)JVM参数大小设置并没有固定标准,需要根据实际项目情况分析,给大家举个例子。原创 2023-02-17 22:24:10 · 26096 阅读 · 0 评论 -
【JVM学习篇】剖析JVM类加载机制
自定义类加载器只需要继承 java.lang.ClassLoader 类,该类有两个核心方法,一个是,实现了双亲委派机制,还有一个方法是findClass,默认实现是空方法,所以我们自定义类加载器主要是重写findClass方法。try {//defineClass将一个字节数组转为Class对象,这个字节数组是class文件读取后最终的字节数组。原创 2023-02-17 14:23:07 · 26506 阅读 · 0 评论