面试和笔试的要点其实差不多,基础知识和实战经验都是最重要的关注点(当然,面试时的态度和眼缘也很重要)。

实际面试时,因为时间有限,不可能所有问题都问一遍,一般是根据简历上涉及的内容,抽一部分话题来聊一聊。看看面试者的经验、态度,以及面对一层层深入问题时的处理思路。借此了解面试者的技术水平,对深度、广度,以及思考和解决问题的能力。

常见的面试套路是什么呢?

  • XXX 是什么?

  • 实现原理是什么?

  • 为什么这样实现?...

Continue reading >>

通过前面的学习,我们发现 GC 日志量很大,人工分析太消耗精力了。由于各种 GC 算法的复杂性,它们的日志格式互相之间不太兼容。

有没有什么工具来减少我们的重复劳动呢? 这种轮子肯定是有现成的。比如 GCEasyGCViwer 等等。

这一节我们就开始介绍一些能让我们事半功倍的工具。

GCEasy 工具

GCEasy 工具由 Tier1app 公司 开发和支持,这...

Continue reading >>

CMS 的 GC 日志解读

CMS 也可称为“并发标记清除垃圾收集器”。其设计目标是避免在老年代 GC 时出现长时间的卡顿。默认情况下,CMS 使用的并发线程数等于 CPU 内核数的 1/4。

通过以下选项来指定 CMS 垃圾收集器:

-XX:+UseConcMarkSweepGC

如果 CPU 资源受限,CMS 的吞吐量会比并行 GC 差一些。示例:

# 请注意命令行启动时没有换行,此处是方便大...
Continue reading >>

上一节 JVM GC 日志解读与分析(基础配置)讲述了 GC 日志相关的基础信息和配置。需要提醒的是,这些参数是基于 JDK 8 配置的。

在 JDK 9 之后的版本中,启动参数有一些变化,继续使用原来的参数配置可能会在启动时报错。不过也不用担心,如果碰到,一般都可以从错误提示中找到对应的处置措施和解决方案。

例如 JDK 11 版本中打印 info 级别 GC 日志的启动脚本:

# JDK&...
Continue reading >>