![](https://img-blog.csdnimg.cn/20201123214306601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
文章平均质量分 99
包括JVM原理以及JVM实战调优的内容【目前主要参考尚硅谷宋红康老师的视频,后续可能会加东西】
youthlql
如果图片显示有问题请看置顶文章
展开
-
【转载】深入分析 G1 垃圾收集器实现原理
G1(Garbage First)垃圾收集器是续 CMS 收集器后的另一款跨时代的垃圾收集器,其开启了分区垃圾收集器的先河。G1 通过时间预测模型尽可能地满足用户对暂停时间的要求(用户可以通过-XX:MaxGCPauseMillis=XXX,来指定垃圾收回时最大的暂停时间),G1 利用压缩算法优化回收垃圾更多的分区,所以他被称作垃圾优先(Garbage First)垃圾收集器。转载 2023-06-15 16:05:59 · 608 阅读 · 0 评论 -
【转载】G1垃圾收集器原理剖析
G1垃圾收集器原理剖析转载 2023-06-15 15:23:23 · 507 阅读 · 0 评论 -
JVM系列-第12章-垃圾回收器
文章目录垃圾回收器GC 分类与性能指标垃圾回收器概述垃圾回收器分类评估 GC 的性能指标不同的垃圾回收器概述垃圾收集器发展史7款经典的垃圾收集器垃圾收集器的组合关系查看默认垃圾收集器JDK8JDK9Serial 回收器:串行回收PaeNew 回收器:并行回收Parallel 回收器:吞吐量优先CMS 回收器:低延迟CMS 回收器CMS 工作原理(过程)CMS分析CMS 的优点与弊端CMS 参数配置小结JDK 后续版本中 CMS 的变化G1 回收器:区域化分代式为什么还需要G1为什么名字叫Garbage Fi原创 2020-11-25 13:28:29 · 1295 阅读 · 2 评论 -
JVM系列-第11章-垃圾回收相关概念
文章目录垃圾回收相关概念System.gc() 的理解手动 GC 理解不可达对象的回收行为内存溢出与内存泄漏内存溢出内存泄漏Stop the World代码感受 Stop the World垃圾回收的并行与并发并发的概念并行的概念垃圾回收的并发与并行HotSpot的算法实现细节根节点枚举安全点与安全区域记忆集与卡表什么是跨代引用?记忆集与卡表再谈引用概述再谈引用:强引用再谈引用:软引用再谈引用:弱引用再谈引用:虚引用再谈引用:终结器引用(了解)1、文章可能会优先更新在Github,个人博客,公众号【Gi原创 2020-11-25 13:27:46 · 769 阅读 · 0 评论 -
JVM系列-第10章-垃圾回收概述和相关算法
文章目录垃圾回收概述大厂面试题蚂蚁金服百度天猫滴滴京东阿里字节跳动什么是垃圾?为什么需要GC?早期垃圾回收Java 垃圾回收机制自动内存管理应该关心哪些区域的回收?垃圾回收相关算法标记阶段:引用计数算法标记阶段的目的引用计数算法循环引用证明:java使用的不是引用计数算法小结标记阶段:可达性分析算法可达性分析实现思路GC Roots可以是哪些元素?注意对象的 finalization 机制finalize() 方法机制生存还是死亡?具体过程代码演示 finalize() 方法可复活对象MAT与JProfil原创 2020-11-25 13:22:37 · 920 阅读 · 0 评论 -
JVM系列-第9章-StringTable(字符串常量池)
文章目录StringTable(字符串常量池)String的基本特性为什么 JDK9 改变了 String 的结构String 的基本特性String 的底层结构String 的内存分配StringTable 为什么要调整?String 的基本操作举例1举例2字符串拼接操作先说结论字符串拼接的底层细节intern() 的使用intern() 方法的说明new String() 的说明new String(“ab”)会创建几个对象?new String(“a”) + new String(“b”) 会创建几个原创 2020-11-24 12:34:08 · 1119 阅读 · 1 评论 -
JVM系列-第8章-执行引擎
文章目录执行引擎执行引擎概述执行引擎概述执行引擎工作过程Java代码编译和执行过程解释执行和即时编译什么是解释器?什么是JIT编译器?机器码 指令 汇编语言机器码指令和指令集汇编语言高级语言字节码C、C++源程序执行过程解释器为什么要有解释器解释器的分类解释器的现状JIT编译器Java 代码执行的分类为啥我们还需要解释器呢?案例JIT编译器相关概念热点代码及探测方式方法调用计数器热度衰减回边计数器HotSpotVM可以设置程序执行方法HotSpotVM JIT 分类C1和C2编译器不同的优化策略分层编译策略原创 2020-11-24 12:33:30 · 590 阅读 · 0 评论 -
JVM系列-第7章-对象的实例化内存布局与访问定位
文章目录对象的实例化内存布局与访问定位对象的实例化对象创建的方式对象创建的步骤对象的内存布局对象的访问定位1、文章可能会优先更新在Github,个人博客,公众号【Github有】。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gitee浏览,或者Gitee在线阅读,个人博客。Gitee在线阅读和个人博客加载速度比较快。3、转载须知:转载请注明GitHub出处,让我们一起维护一个良好的技术创作环境!4、如果你要提交 issue 或者 pr 的话建议到 Github 提交。5原创 2020-11-24 12:32:17 · 610 阅读 · 0 评论 -
JVM系列-第6章-方法区
文章目录方法区栈、堆、方法区的交互关系方法区的理解方法区在哪里?方法区的基本理解HotSpot方法区演进设置方法区大小与 OOMJDK7及以前(永久代)JDK8及以后(元空间)方法区OOM如何解决OOM方法区的内部结构方法区存储什么?概念举例non-final 类型的类变量全局常量:static final运行时常量池运行时常量池 VS 常量池常量池运行时常量池方法区的使用举例图解字节码指令执行流程方法区演进细节永久代演进过程永久代为什么要被元空间替代?字符串常量池静态变量放在哪里对象实体在哪里放着?变量(原创 2020-11-24 12:31:32 · 1002 阅读 · 0 评论 -
JVM系列-第5章-堆
文章目录堆堆的核心概述堆与进程堆内存细分JVisualVM可视化查看堆内存设置堆内存大小与 OOM设置堆内存OOM年轻代与老年代图解对象分配过程图解对象分配(一般情况)特殊情况说明常用调优工具GC分类Young GCMajor/Full GCGC日志分析堆空间分代思想对象内存分配策略TLAB为对象分配内存(保证线程安全)为什么有 TLAB什么是 TLABTLAB再说明堆空间参数设置常用参数设置空间分配担保堆是分配对象的唯一选择么?逃逸分析代码优化栈上分配同步省略(同步消除)标量替换逃逸分析的不足小结1、原创 2020-11-24 12:30:37 · 1007 阅读 · 0 评论 -
JVM系列-第4章-虚拟机栈
文章目录虚拟机栈简介虚拟机栈的出现背景内存中的栈与堆虚拟机栈基本内容虚拟机栈的特点虚拟机栈的异常设置栈内存大小概念举例栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表认识局部变量表概念举例部分详解关于Slot的理解Slot代码示例Slot的重复利用静态变量与局部变量的对比补充说明操作数栈操作数栈的特点操作数栈的作用操作数栈代码追踪一步一步看流程小问题栈顶缓存技术动态链接方法的调用静态链接与动态链接早期绑定与晚期绑定多态与绑定虚方法与非虚方法举例关于 invokedynamic 指令动态语言和静态原创 2020-11-24 12:29:58 · 1921 阅读 · 0 评论 -
JVM系列-第3章-运行时数据区
文章目录运行时数据区概述及线程前言运行时数据区结构运行时数据区与内存线程的内存空间Runtime类线程JVM 线程JVM 系统线程程序计数器(PC寄存器)PC寄存器介绍PC寄存器的作用举例两个面试题CPU 时间片本地方法接口本地方法举例为什么要使用 Native Method?与Java环境外交互与操作系统的交互Sun’s Java本地方法的现状本地方法栈1、文章可能会优先更新在Github,个人博客,公众号【Github有】。其它平台会晚一段时间。个人博客备用地址2、如果Github很卡,可以在Gi原创 2020-11-24 12:29:09 · 870 阅读 · 0 评论 -
JVM系列-第2章-类加载子系统
文章目录第2章-类加载子系统内存结构概述简图详细图类加载器子系统类加载器ClassLoader角色类加载过程概述加载阶段链接阶段验证(Verify)准备(Prepare)解析(Resolve)初始化阶段类的初始化时机clinit()1,2,3说明4说明5说明6说明类加载器的分类概述虚拟机自带的加载器启动类加载器扩展类加载器系统类加载器用户自定义类加载器什么时候需要自定义类加载器?如何自定义类加载器?关于ClassLoader获取ClassLoader途径双亲委派机制双亲委派机制原理双亲委派机制代码演示举例1原创 2020-11-24 12:28:16 · 1660 阅读 · 1 评论 -
JVM系列-第1章-JVM与Java体系结构
文章目录第1章-JVM和Java体系架构前言开发人员如何看待上层框架架构师每天都在思考什么?我们为什么要学习JVMJava VS C++什么人需要学JVM?推荐及参考书籍TIOBE排行榜Java生态圈Java-跨平台的语言JVM-跨语言的平台多语言混合编程如何真正搞懂JVM?Java发展重大事件Open JDK和Oracle JDK虚拟机虚拟机概念Java虚拟机JVM的位置JVM的整体结构Java代码执行流程JVM的架构模型基于栈的指令集架构基于寄存器的指令级架构两种架构的举例JVM架构总结JVM的生命周期原创 2020-11-24 12:27:15 · 2222 阅读 · 1 评论