![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 84
Hello-zhou
认真学技术,努力搬砖!
展开
-
【深入理解JVM】JVM垃圾回收器针对漏标不同回收机制处理方式-待补充
漏标的问题处理方式: 场景:在这里插入图片描述 三色标记法: 黑色:根对象,或者该对象与它的子对象都被扫描过。 灰色:对本身被扫描,但是还没扫描完该对象的子对象。 白色:未被扫描对象,如果扫描完所有对象之后,最终为白色的为不可达对象,既垃圾对象。 在垃圾回收器扫描之前:B->C引用关系刚刚删除,A->C没有引用关系,扫描之后:B->C删除了引用关系,A->C建立了引用关系(这个时候垃圾回收器还没有清楚垃圾,只是在标记垃圾对象),所以会导致C对象被标记为垃圾对象,这就是所谓的漏标现象原创 2022-01-26 15:06:01 · 1114 阅读 · 0 评论 -
【深入理解JVM】11、CMS日志格式+G1日志格式+常用参数+纤程【草稿】
1、CMS的日志格式 CMS日志分析 执行命令:java -Xms20M -Xmx20M -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC com.mashibing.jvm.c7_gc.T15_FullGC_Problem01 [GC (Allocation Failure) [ParNew: 6144K->640K(6144K), 0.0265885 secs] 6585K->2770K(19840K), 0.0268035 secs] [Time原创 2020-11-20 11:01:52 · 505 阅读 · 0 评论 -
【深入理解JVM】10、CMS+G1+MixedGC+card table+漏标及避免漏标【草稿】
JVM调优第一步,了解JVM常用命令行参数 JVM的命令行参数参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html HotSpot参数分类 标准: - 开头,所有的HotSpot都支持 非标准:-X 开头,特定版本HotSpot支持特定命令 不稳定:-XX 开头,下个版本可能取消 java -version java -X 试验用程序: import java.uti原创 2020-11-20 11:00:56 · 2191 阅读 · 1 评论 -
【深入理解JVM】8、JVM实战调优+arthas实战使用+jvisualvm实战使用+GC算法+JVM调优如何定位问题+线上排查+针对小BUG不停止服务修改bug+CMS+G1+常用参数【面试必备】
JVM调优第一步,了解JVM常用命令行参数 JVM的命令行参数参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html HotSpot参数分类 标准: - 开头,所有的HotSpot都支持 非标准:-X 开头,特定版本HotSpot支持特定命令 不稳定:-XX 开头,下个版本可能取消 java -version java -X 试验用程序: import java.uti原创 2020-11-11 08:04:00 · 1333 阅读 · 2 评论 -
【深入理解JVM】6、GC算法-如何找垃圾+清除垃圾+JVM内存分代模型+常见的垃圾回收器【面试必备】
1、GC的基本知识 1、JAVA和C++ GC的区别 1、java GC处理垃圾 开发效率高,执行效率低 2、C++ 手工处理垃圾 忘记回收垃圾 内存泄漏 回收多次 非法访问 开发效率低,执行效率高 2、如何定位垃圾。 1、RC:reference count 引用计数 算法原理:给对象添加一个引用计数器,每当一个地方引用它时,计数器值就加1;每当一个引用时效时,计数器值就减1;当引用计数为0时,表示该对..原创 2020-11-08 18:25:55 · 398 阅读 · 0 评论 -
【深入理解JVM】5、运行时数据区(Run-time data areas)+常用指令【面试必备】
参考资料:JVMS(Java Virtual Machine Specification) load,link,initialize前面文章已经讲过,这章我们开始run-time data area 运行时区域包括下图区域: 注释: 1、Heap(堆):一个java虚拟机实例中只存在一个堆内存空间,被所有线程共享;堆是运行时数据区域,所有类的实例和数组的内存均从此处分配,堆是在java虚拟机启动时创建的,在堆内存之外的内存成为非堆内存。对象的堆内存右垃圾回收器自动管理系统回收,堆的大..原创 2020-11-06 12:40:56 · 460 阅读 · 1 评论 -
【深入理解JVM】4、一线互联网面试题+对象创建过程+对象头具体包括什么+对象定位?【面试必备】
问题1、请解释一下对象的创建过程? class loading class linking verification preparation resolution class initializing 静态初始化的过程 申请对象内存 成员变量赋默认值 调用构造方法<init> 成员变量顺序赋初始值 执行构造方法语句:首先去调用super 问题2、对象在内存中的存储布局? 1、先说一下观察虚拟机配置的命令: java -XX:+PrintComm...原创 2020-11-05 22:53:49 · 444 阅读 · 0 评论 -
【深入理解JVM】3、CPU储存器+MESI+CPU伪共享+CPU乱序问题及代码论证+volatile+synchrnized【面试必备】
1、存储器的层次结构 2、cache line 缓存行 由于共享变量在CPU缓存中的存储是以缓存行为基本单位,一个缓存行可以存储多个变量(存满当前缓存行的字节数);而CPU对缓存的修改又是以缓存行为最小单位的,那么就会出现上诉的伪共享问题。 Cache Line可以简单的理解为CPU Cache中的最小缓存单位,今天的CPU不再是按字节访问内存,而是以64字节为单位的块(chunk)拿取,称为一个缓存行(cache line)。当你读一个特定的内存地址,整个缓存行将从主存换入缓存,并且访问同一个缓原创 2020-11-12 16:30:23 · 1754 阅读 · 13 评论 -
【深入理解JVM】1、在JVM类加载如何加载?双亲委派加载类及混合模式,代码演示【面试必备】
###原创 2020-11-12 16:30:12 · 901 阅读 · 3 评论