图灵学院jvm
https://www.bilibili.com/video/BV14a411B7Ux?p=1
JVM作用
JVM内存模型图
javap常用的命令
.class类文件
执行javap命令后的操作 输出到一个文件而不是控制台打印
反汇编后的实际内容
JVM指令手册(局部 官方文档 指令码解释手册 查手册就好)
线程栈、栈帧关系图
Athas入门-下载操作
Athas入门-基础操作
为什么JVM GC设计者考虑到了full gc时的STW机制:stop the world?
STW,是为了停止所有用户线程,只是保留gc线程运行,为了防止用户线程的对象,一会是非垃圾,一会是垃圾,导致影响gc线程不能很好停止或结束。
对JVM调优,让其几乎不发生full gc?
让minor gc,每次触发之时,不回收整个eden区,而是只是回收一小部分,部分回收,占用时间少,不会造成客户端超时,用户感知不明显,减少单次gc时间。或者换另外一种思路,定时只回收固定时间(10-50ms)的垃圾内存。或者边收集,边回收。
g1垃圾收集器
java线程内存模型JMM
缓存一致性协议(MESI协议 I:invalid 使无效)
volatile 在汇编底层有一个lock前缀指令,它会做一件事情,保证多线程之间的共享变量之间的相互之间的及时的可见性。
指令重排之遵循asifserial and happensbefore原则
P6 没看 20-33没看
JVM如何创建一个对象?
反汇编指令:javap -v -c xxx.class
指令:jinfo java进程ID:可以查看JVM相关参数信息
指令:jmap -heap java进程ID:可以查看堆空间分配信息
class类文件 && jvm常量池详细解析
class类文件结构
当一个对象没有引用指向它的时候,就属于垃圾对象。判断垃圾对象的方法有以下2种。如何识别垃圾对象?
(1)引用计数法
(2)可达性分析算法
JVM垃圾回收算法3种介绍
【1】标记清除
【2】复制算法
【3】标记整理
三者区别
现有的垃圾收集器包含10种
JVM内存模型剖析(JVM可视化工具:控制台任意cmd下执行命令 jvisualvm 可打开jdk自带工具:jvisualvm)
新生代、老年代垃圾收集-采用的算法对比
(1)SerialGC 串行
(2)ParallelGC 并行
(3)CMS收集器 并发标记清除(不会暂停用户线程)
电商系统案例
对象动态年龄判断
类加载过程
类加载器完整执行流程
JVM核心加载器包含3个
(1)引导类加载器(由C++实现,加载jre/ 下的rt.jar等核心jar包),(2)扩展类加载器(加载jre/ext/下的所有jar包),(3)应用类加载器(加载自己实现的类)。
类加载器两个核心方法
双亲委派机制面试题(一个类只会被类加载器加载一次)提高效率。
tomcat实现了打破双亲委派机制
Object对象头介绍
(学习笔记整理)参考视频资料:
https://www.bilibili.com/video/BV1DA411G7fR?p=1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。