1、前提回顾
复制算法
标记清除算法--会导致碎片
标记整理--耗时
2、垃圾定义以及GCRoots
什么是垃圾--内存中已经不再被引用的就是垃圾
如何判断是否是垃圾:引用计数法、可达性算法
引用计数法:
可达性算法
GCRoots:
3、盘点JVM系统默认值
面试题目
1)XX参数
a、
Boolean类型
KV设置类型
查看所有的
面试题
b、查看参数盘点家底
修改并运行在当前类
2)常用基本参数
面试题
java8后,元空间默认大小是21M
一般情况下的调休,元空间的大小需要调整,因为它依赖于本地内存。其他调优参数,oracle公司一般已经是最优 了,不需要为了调优而调优。
典型的设置案列模板:
-XX:+PrintGCDetails
GC:
FullGC
一般这些参数的默认值不需要修改
java8会限制最大值是15
4、强、软、弱、虚分别是什么
弱引用,只要有GC,就会被回收
软、弱引用的适用场景(mybatis底层源码用了大量的软、弱引用)
WeakHashMap 弱引用,可以用作高速缓存和对内存敏感的业务需求开发
5、谈谈对OOM的认识
NIO程序时,会经常出现这个异常
记一次深刻的异常,电商项目、支付项目等素材:
6、垃圾回收算法和垃圾回收器
Parallel:
CMS:
java9的默认垃圾回收器是G1;java8的默认垃圾回收器是Parallel
一般互联网公司使用的java8都会把垃圾回收器改成CMS
java8默认的垃圾回收器是parallel
parallel拥有自适应调节策略 -XX:-UseAdaptiveSizePolicy
生产上如何选择垃圾回收器:
关于G1的面试题:
使用G1垃圾回收器后:
G1底层原理
7、JVMGC+Springboot微服务的生产部署和调参优化
8、生产问题如何定位,解决
9、gitHub的使用
awesome 相当于官网的第二个官网,而且更全面
搜索
组合搜索使用:
高亮显示:
10.实际生产问题排查
同样的错误报多了,就不会打印堆栈信息,所以需要找到一开始的报错有堆栈信息的日志来定位问题.