随笔分类 - JVM
发表于 2021-03-17 10:24阅读:401评论:0推荐:1
摘要:类加载子系统 类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。 在类加载子系统中有以下3个阶段操作(广义上的加载): 加载阶段 Bootstrap ClassLoader:引导类加载器,主要加载JDK里面的核心类 Extension ClassLoade
阅读全文 »
发表于 2021-03-16 10:44阅读:351评论:0推荐:0
摘要:开局一张图,前面已经从每一部分解析过JVM的内存结构了,现在按照顺序来分析: 整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot)。运行时的数据主要是存放在运行时数据区,代码的解释编译优化以及垃圾收集,都是在执行引擎中。本地方法
阅读全文 »
发表于 2021-03-11 12:59阅读:405评论:0推荐:0
摘要:Sun Classic VM 世界上第一款商用 Java 虚拟机,JDK1.4 已经淘汰。 内部只有解释器,可以自己外挂JIT编译器,但是二者只能使用其一,不能配合工作。 hotspot 内置了该虚拟机。 解释器,需要逐行解释执行,效率低下。譬如:如果循环两千次,循环体很大,每次执行都需要解释执行。
阅读全文 »
发表于 2021-03-09 11:43阅读:139评论:0推荐:0
摘要:Github仓库地址:https://github.com/Damaer/JvmNote 文档地址:https://damaer.github.io/JvmNote/ JVM生命周期 启动 执行 退出 启动 Java虚拟机的启动时通过引导加载器(bootstrap class loader)创建一个
阅读全文 »
发表于 2021-03-07 14:50阅读:676评论:0推荐:1
摘要:2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。 2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1) 2018年,发布JDK11,带来了革命性ZGC,性能比较强。 虚拟机介绍 虚拟机,就是虚拟的计算机
阅读全文 »
发表于 2020-12-26 22:20阅读:206评论:0推荐:0
摘要:(一)java内存区域管理 C/C++每一个new操作都需要自己去delete/free,而java里面有虚拟机自动管理内存,不容易出现内存泄漏或者溢出的问题,但是不容易出现不代表不出现,了解虚拟机怎么使用和管理内存是十分重要的是,对程序优化或者问题排查有帮助。 运行时区域主要分为: 线程私有: 程
阅读全文 »