ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-07-20-JVM的基础认识

2022-07-31 23:34:29  阅读:163  来源: 互联网

标签:垃圾 20 07 指令 线程 2022 JVM gc 加载


图灵学院jvm
https://www.bilibili.com/video/BV14a411B7Ux?p=1

JVM作用
image

JVM内存模型图
image
image

javap常用的命令
image
.class类文件
image
执行javap命令后的操作 输出到一个文件而不是控制台打印
image
反汇编后的实际内容
image
JVM指令手册(局部 官方文档 指令码解释手册 查手册就好)
image
线程栈、栈帧关系图
image

Athas入门-下载操作
image
Athas入门-基础操作
image

为什么JVM GC设计者考虑到了full gc时的STW机制:stop the world?
STW,是为了停止所有用户线程,只是保留gc线程运行,为了防止用户线程的对象,一会是非垃圾,一会是垃圾,导致影响gc线程不能很好停止或结束。

对JVM调优,让其几乎不发生full gc?
image

让minor gc,每次触发之时,不回收整个eden区,而是只是回收一小部分,部分回收,占用时间少,不会造成客户端超时,用户感知不明显,减少单次gc时间。或者换另外一种思路,定时只回收固定时间(10-50ms)的垃圾内存。或者边收集,边回收。
image
image

g1垃圾收集器
image
java线程内存模型JMM
image

缓存一致性协议(MESI协议 I:invalid 使无效)
image

image

image

volatile 在汇编底层有一个lock前缀指令,它会做一件事情,保证多线程之间的共享变量之间的相互之间的及时的可见性。
image
image

指令重排之遵循asifserial and happensbefore原则
image
image

P6 没看 20-33没看

JVM如何创建一个对象?
image

反汇编指令:javap -v -c xxx.class
image

指令:jinfo java进程ID:可以查看JVM相关参数信息
指令:jmap -heap java进程ID:可以查看堆空间分配信息

class类文件 && jvm常量池详细解析
image
class类文件结构
image

当一个对象没有引用指向它的时候,就属于垃圾对象。判断垃圾对象的方法有以下2种。如何识别垃圾对象
(1)引用计数法
image
image
image

(2)可达性分析算法
image
image

JVM垃圾回收算法3种介绍
image

【1】标记清除
image
image

【2】复制算法
image
image

【3】标记整理
image
image

三者区别
image

现有的垃圾收集器包含10种
image

JVM内存模型剖析(JVM可视化工具:控制台任意cmd下执行命令 jvisualvm 可打开jdk自带工具:jvisualvm)
image

新生代、老年代垃圾收集-采用的算法对比
image

(1)SerialGC 串行
image
(2)ParallelGC 并行
image
(3)CMS收集器 并发标记清除(不会暂停用户线程)
image

电商系统案例
image
image
image

对象动态年龄判断
image

类加载过程
image

类加载器完整执行流程
image

JVM核心加载器包含3个
(1)引导类加载器(由C++实现,加载jre/ 下的rt.jar等核心jar包),(2)扩展类加载器(加载jre/ext/下的所有jar包),(3)应用类加载器(加载自己实现的类)。
image

类加载器两个核心方法
image

双亲委派机制面试题(一个类只会被类加载器加载一次)提高效率。
image

自定义类加载器(继承父类,重写2个方法)
image

tomcat实现了打破双亲委派机制
image

Object对象头介绍
image

(学习笔记整理)参考视频资料:
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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有