JVM笔记 -- 来,教你类加载子系统

发布于 2021-03-17

类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。在类加载子系统中有以下3个阶段操作(广义上的加载):加载阶段BootstrapClassLoader:引导类加载器,主要加载JDK里面的核心类ExtensionClassLoader:拓展类加载

0 条评论
223 热度

JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

发布于 2021-03-16

开局一张图,前面已经从每一部分解析过JVM的内存结构了,现在按照顺序来分析:整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot)。运行时的数据主要是存放在运行时数据区,代码的解释编译优化以及垃圾收集,都是在执行引擎中。本地方法是

0 条评论
230 热度

JVM笔记 -- JVM经历了什么?

发布于 2021-03-11

Sun Classic VM世界上第一款商用 Java 虚拟机,JDK1.4 已经淘汰。内部只有解释器,可以自己外挂JIT编译器,但是二者只能使用其一,不能配合工作。hotspot 内置了该虚拟机。解释器,需要逐行解释执行,效率低下。譬如:如果循环两千次,循环体很大,每次执行都需要解释执行。JIT

0 条评论
159 热度

JVM笔记 -- JVM的生命周期介绍

发布于 2021-03-11

Github仓库地址:https://github.com/Damaer/JvmNote  文档地址:https://damaer.github.io/JvmNote/JVM生命周期启动执行退出启动Java虚拟机的启动时通过引导加载器(bootstrap class loader)创建一个初始类(i

0 条评论
150 热度

JVM笔记 -- JVM的发展以及基于栈的指令集架构

发布于 2021-03-07

2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1)2018年,发布JDK11,带来了革命性ZGC,性能比较强。虚拟机介绍虚拟机,就是虚拟的计算机,可以执

0 条评论
131 热度

JVM笔记 -- Java跨平台和JVM跨语言

发布于 2021-01-31

学习JVM的重要性从上层应用程序到底层操作系统,到底有哪些东西?平时开发的应用程序主要基于各种框架,譬如Spring,SpringMVC,Mybatis,而各种框架又是基于Java API来实现的,Java API调用执行是在JVM上的,而JVM则是运行在操作系统上的,操作系统是在物理机器打交道的。

0 条评论
204 热度