首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
深入理解JVM
OpenCoder
创建于2021-07-28
订阅专栏
深入讲解JVM系列知识,包括类加载机制、JVM内存结构、垃圾回收机制、垃圾收集器、jvm参数调优、jvm相关工具分析、内存泄露、内存模型等,包含大量实战案例带你一步一图掌握JVM
等 18 人订阅
共40篇文章
创建于2021-07-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
22-大厂面试题:Con-current Mode Failure如何导致以及解决
这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战 上文我们已经介绍了CMS垃圾收集器的工作原理以及流程,本篇我们接着深入说明CMS垃圾收集器的缺点以及所导致的一些问题应该如何解决。先通过
21-看懂CMS收集器工作机制
这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战 CMS收集器 年轻代垃圾回收器机制我们都很清楚了,接下来我们介绍最核心的老年代垃圾回收环节。 我们平时在写代码的时候,相信大部分同学几乎都
20-Serial收集器+ParNew收集器
这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战 垃圾收集器 如果说收集算法是内存回收的方法论, 那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》 中对垃圾收集器应该如何实现并没有
19-案例实战剖析-日处理上亿数据的系统内存分析和优化
这是我参与8月更文挑战的第17天,活动详情查看:8月更文挑战 1.系统背景 这是当时开发中遇到的一个真实场景,也是大部分人在开发项目中有可能会遇到的一些场景,该系统主要是做大数据相关计算分析的,日处理
18-动态对象年龄判断+空间分配担保规则+老年代回收算法
这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战 动态对象年龄判断 为了能更好地适应不同程序的内存状况,HotSpot虚拟机并不是永远要求对象的年龄必须达到- XX:MaxTenuring
17-长期存活的对象将进入老年代
这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战 HotSpot虚拟机中多数收集器都采用了分代收集来管理堆内存, 那内存回收时就必须能决策哪些存活对象应当放在新生代, 哪些存活对象放在老年
16-内存分配与回收策略-对象优先分配Eden+大对象进老年代
这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战 1.对象优先在Eden分配-对象优先分配Eden+大对象进老年代 大多数情况下, 对象在新生代Eden区中分配。当Eden区没有足够空间进
15-大厂面试题-JVM垃圾回收采用的是什么算法,有什么区别和优劣?
这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战 通过之前的学习,我们知道了JVM会通过可达性算法来筛选出哪些对象是可回收的,哪些对象是不可回收的,GCRoots对象是哪些,java的引用
14-强引用、软引用、弱引用、虚引用以及对象的finalization机制
这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战 强引用、软引用、弱引用、虚引用 Java有不同的引用类型,分别是:强引用、软引用、弱引用、虚引用,不同的引用类型跟我们的垃圾回收也有着不同
13-大厂面试题:为什么要垃圾回收以及如何判断对象可以回收
这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战 前言 接下来我们正式进入第二个系列,关于垃圾回收以及优化。 对于从事C、 C++程序开发的开发人员来说, 在内存管理领域, 他们既是拥有最
11-方法区的演进以及StringTable的调整
这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但
10-年轻代和老年代
年轻代和老年代 存储在JVM中的Java对象可以被划分为两类: ➷ 一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速,生命周期短的,及时回收即可。 ➷ 另外一类对象的生命周期却非常
09-本地方法栈和堆内存
一.本地方法栈 Nativemethodstack(本地方法栈):保存native方法进入区域的地址 对于一个运行中的Java程序而言,它还可能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地
08-JVM的内存结构之程序计数器和虚拟机栈
接下来我们继续深入第二个环节,也就是JVM的内存结构,很多人想到BAT等大厂去面试,但是现在互联网大厂面试几乎都会考核JVM相关知识的积累,所在在了解完了JVM的类加载机制之后,我们有必要一起来学习下
07.Tomcat源码分析——类加载体系
由于在生产环境中,Tomcat一般部署在Linux系统下,所以本文将以 startup.sh shell脚本为准,对Tomcat的启动进行分析。 我们启动Tomcat的命令如下: startup.sh
06-阿里面试题:Tomcat容器类加载器设计 [线程上下文类加载器+破坏性双亲委派机制]
Tomcat这种web容器中的类加载器应该如何设计实现?首先我们来看下Tomcat类加载器的设计结构: 那么应用程序类加载器下的都是Tomcat自定义的类加载器,Tomcat为什么要自定义这么多类加载
05-说下类加载器和双亲委派机制
一.类加载器 在明白了整个类从加载到初始化的过程,接下来我们有必要来说下类加载器的概念,因为实现上述过程是必须依靠加载器来实现的。 类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却
04-面试:类的初始化做了什么?初始化的时机是?
04-面试:类的初始化做了什么?初始化的时机是? 上一篇文章我们已经讲过了类的加载,连接阶段(验证、准备、解析),最后还会经历一个很重要的阶段就是我们的类的初始化。 通过准备阶段类变量已经赋过一次系统
03.JVM的类加载机制你知多少?
03.JVM的类加载机制你知多少? 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析
01-为什么要学习JVM?为什么必须学习JVM
前言 为什么要学习JVM?为什么必须学习JVM 1.面试需要(大厂必考核的一项技能) 2.深入的理解Java这门语言。(万丈高楼地基最重要) 3.更好的解决线上排查问题(更好的解决生产线问题) 4.走