标签:垃圾 20 07 指令 线程 2022 JVM gc 加载
图灵学院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)应用类加载器(加载自己实现的类)。
类加载器两个核心方法
双亲委派机制面试题(一个类只会被类加载器加载一次)提高效率。
自定义类加载器(继承父类,重写2个方法)
tomcat实现了打破双亲委派机制
Object对象头介绍
(学习笔记整理)参考视频资料:
https://www.bilibili.com/video/BV1DA411G7fR?p=1
标签:垃圾,20,07,指令,线程,2022,JVM,gc,加载 来源: https://www.cnblogs.com/YiMingXiaoBuYiMengXiaoNai/p/Java_JVM_basic_learning.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。