摘要: -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详细日志 -XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式) -XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53: 阅读全文
posted @ 2020-04-04 19:14 甜菜波波 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 参数 描述 UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后, 使用Serial+Serial Old收集器组合进行垃圾收集。 UseParNewGC 打开此开关参数后,使用ParNew+Serial Old收集器组合进行垃圾收集。 UseConcMarkSweepGC 阅读全文
posted @ 2020-04-04 19:12 甜菜波波 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: 这个问题的答案取决于JDK版本,在2012年默认值改变过一次。 请参考:JDK-6679764: enable parallel compaction by default这个改进使得HotSpot VM在选择使用ParallelGC(-XX:+UseParallelGC 或者是ergonomics 阅读全文
posted @ 2020-04-04 19:02 甜菜波波 阅读(2524) 评论(0) 推荐(0) 编辑
摘要: 查看JVM使用的默认的垃圾收集器 阅读目录 一、查看步骤 二、验证下,是不是那么回事吧 三、Ps Scanvenge的简要介绍 四、Serial Old的简要介绍 五、Serial Old和Ps MarkSweep的区别 回到顶部 一、查看步骤 cmd执行命令: java -XX:+PrintCom 阅读全文
posted @ 2020-04-04 18:44 甜菜波波 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 前言 Garbage First(G1)是垃圾收集领域的最新成果,同时也是HotSpot在JVM上力推的垃圾收集器,并赋予取代CMS的使命。如果使用Java 8/9,那么有很大可能希望对G1收集器进行评估。本文详细首先对JVM其他的垃圾收集器进行总结,并与G1进行了简单的对比;然后通过G1的内存模型 阅读全文
posted @ 2020-04-04 18:19 甜菜波波 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别.这里写图片描述 图中展示了7种不同分代的收集器: Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Ol 阅读全文
posted @ 2020-04-04 18:16 甜菜波波 阅读(765) 评论(0) 推荐(0) 编辑
摘要: Young GC的触发时机:Young GC其实一般就是在新生代的Eden区域满了之后就会触发,采用复制算法来回收新生代的垃圾。 Full GC的触发时机如下: (1)发生Young GC之前进行检查,如果“老年代可用的连续内存空间” < “新生代历次Young GC后升入老年代的对象总和的平均大小 阅读全文
posted @ 2020-04-04 10:23 甜菜波波 阅读(6623) 评论(0) 推荐(0) 编辑
摘要: 我们平时提及Minor GC、Young GC、Major GC,它们之间的关系是怎样的呢? 如下图1所示,一图胜千言,这是JDK8之前的,JDK8上没有最右边的Perm区。 图1 Minor/Young/Major GC的关系 此图来自国外的一篇博客,建议读者阅读原文,链接地址。 从图1来看Min 阅读全文
posted @ 2020-04-04 10:12 甜菜波波 阅读(3118) 评论(1) 推荐(1) 编辑
摘要: Java的JJWT实现JWT https://www.jianshu.com/p/278ad96dc7f3 阅读全文
posted @ 2020-04-04 09:46 甜菜波波 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息, 阅读全文
posted @ 2020-04-04 09:25 甜菜波波 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 一、原理区别: java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。 而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。 1、如果目标对象实现了接口,默认情况下会采用JDK的动态 阅读全文
posted @ 2020-04-04 09:04 甜菜波波 阅读(1688) 评论(0) 推荐(1) 编辑
摘要: 概述 对象实例由对象头、实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | | | | | markword | 32bit | 64bit | | 类型指针 | 32bit |64bit ,开启指针压缩时为32b 阅读全文
posted @ 2020-04-04 08:52 甜菜波波 阅读(3490) 评论(0) 推荐(0) 编辑
摘要: 1. 并发包中的ReentrantLock是偏向锁河轻量级锁码? 是的。 2. 偏向锁跟可重入性有什么区别,非偏向锁如何实现可重入? 偏向锁和可重入性直接没啥关系。。 当然要是锁不具备可重入性,那就无所谓偏向了。 可重入性是指比如一个线程获得了对象A上的锁,如果它第二次请求A的锁必然可以获得(也就是 阅读全文
posted @ 2020-04-04 08:36 甜菜波波 阅读(2682) 评论(0) 推荐(1) 编辑