面试整理112
2023-11-02 17:35:18 1 举报
面试整理
作者其他创作
大纲/内容
精品模板
自定义类加载器
<Tomcat>/common/*被tomcat和应用共用的jar包
CMS扩展老年代引用新生代的场景:卡表:减少扫描的范围G1收集器如何处理跨代:记忆卡RSet把老年代引用新生代的引用放到记录卡只有老年代的分区会有RSet,因为G1每一次GC都会对年轻代进行收集
类加载器
现象:1、接口慢,从pinpoint看执行的时候有GAP,GAP的时候在干什么?猜测在GC2、看监控面板CPU和GC明显升高排查:用jmap导出堆快照,发现一个char[]数组1个多G,是一条COUNT语句的SQL, 接口入参40多MB
AppClassLoader
ExtensionClassLoader
卸载
解析
JVM调优案例
加载
WebAppClassloader
<Tomcat >/shared/*font color=\"#2c3e50\
准备
初始化
RSet存储的结构有三种:稀少:直接记录引用对象的卡片索引细粒度:记录引用对象的分区索引粗粒度:只记录引用情况,每个分区对应一个比特位
<Tomcat >/server/*加载tomcat本身
CommonClassLoader
1、如果要打破双亲委派模式,只需要重写loadClass方法2、如果不打破,只需要重写findClass方法
BootstrapClassLoader
文本
SharedClassLoader
<Tomcat >/webapps/<app>/WEB-INF/*
连接
CatalinaClassLoader
请求高峰期发生GC,导致服务可用性下降(对老年代的回收,新生代对象指向老年代)原因:cms重新标记需要stw,年轻年对像引用了老年代对象,所以必须要扫描整个堆。在扫描的过程中新生代存活对象比较多,花的时间长怎么查到的?1、日志显示在重新标记阶段用了1.3s,这个阶段是要STW的优化原理:在remark前有一个阶段叫span style=\
使用
验证
有些情况只依靠自定义子类还不行1、java.sql.Driver由BootstrapClassLoader加载,但是Driver的实现类是找不到com.mysql.cj.jdbc.Driver的font color=\"#2c3e50\
背景:JDK为1.8,某一次发版之后几分钟生产环境预警排查:1、log文件里面有span style=\
0 条评论
下一页