JVM
文章平均质量分 87
秦怀
这个作者很懒,什么都没留下…
展开
-
JVM笔记 -- 来,教你类加载子系统
类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区,生成Klass的实例。在类加载子系统中有以下3个阶段操作(广义上的加载):加载阶段Bootstrap ClassLoader:引导类加载器,主要加载JDK里面的核心类Extension ClassLoader:拓展类加载器Application ClassLoader:应用加载器链接阶段验证链接解析初始化阶段如果加载的时候失败了,则不会执行后面的链接等操作。类加载子系统的作用:原创 2021-03-17 10:21:29 · 302 阅读 · 0 评论 -
JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?
开局一张图,前面已经从每一部分解析过JVM的内存结构了,现在按照顺序来分析:整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot)。运行时的数据主要是存放在运行时数据区,代码的解释编译优化以及垃圾收集,都是在执行引擎中。本地方法是指Native方法,也就是C/C++编写的方法。类加载子系统类文件首先需要经过类加载子系统,进行加载,进类信息等加载到运行时数据区。在类加载子系统中有以下三个阶段操作:加载链接初始化其中加原创 2021-03-16 10:40:18 · 277 阅读 · 0 评论 -
JVM笔记 -- JVM经历了什么?
## Sun Classic VM- 世界上第一款商用 `Java` 虚拟机,`JDK1.4` 已经淘汰。- 内部只有解释器,可以自己外挂`JIT`编译器,但是二者只能使用其一,不能配合工作。- `hotspot` 内置了该虚拟机。解释器,需要逐行解释执行,效率低下。譬如:如果循环两千次,循环体很大,每次执行都需要解释执行。`JIT` 编译器,除了可以直接全部即时编译,还可以统计出那些代码执行频率比较高,这部分代码就是热点代码,`JIT` 编译器会将热点代码,提前编译成为机器指令,放在方法区缓原创 2021-03-11 12:53:24 · 276 阅读 · 0 评论 -
JVM笔记 -- JVM的生命周期介绍
> Github仓库地址:https://github.com/Damaer/JvmNote 文档地址:https://damaer.github.io/JvmNote/**JVM生命周期**- 启动- 执行- 退出## 启动Java虚拟机的启动时通过引导加载器(`bootstrap class loader`)创建一个初始类(`initial class`)来完成的,这个类是由Java虚拟机的具体实现指定的。自定义的类是由系统类加载器加载的。自定义类的顶级父类都是`Obje.原创 2021-03-09 11:40:30 · 333 阅读 · 0 评论 -
JVM笔记 -- JVM的发展以及基于栈的指令集架构
2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。2017年,发布JDK9,G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GC为G1)2018年,发布JDK11,带来了革命性ZGC,性能比较强。虚拟机介绍虚拟机,就是虚拟的计算机,可以执行一系列虚拟计算机指令,大体上可以分为系统虚拟机和程序虚拟机。它们运行时,都会受到虚拟机提供的资源的限制。系统虚拟机:仿真模拟系统的,比如Visual Box,VMware...原创 2021-03-07 14:39:53 · 543 阅读 · 0 评论 -
JVM笔记 -- Java跨平台和JVM跨语言
学习JVM的重要性从上层应用程序到底层操作系统,到底有哪些东西?平时开发的应用程序主要基于各种框架,譬如Spring,SpringMVC,Mybatis,而各种框架又是基于Java API来实现的,Java API调用执行是在JVM上的,而JVM则是运行在操作系统上的,操作系统是在物理机器打交道的。在框架上进行业务开发,或者学习框架如何使用,是大部分开发者的工作。但是实际上我们不该执着于框架该如何使用,而是应该往下走,一般最后遇到的问题都会到JVM和操作系统的问题。即使现在的 JVM 已经很完善,原创 2021-01-30 16:10:51 · 463 阅读 · 0 评论 -
JVM笔记【1】-- 运行时数据区
文章目录(一)java内存区域管理1.1 程序计数器1.2 虚拟机栈1.3 本地方法栈1.4 java堆1.5 方法区1.5.1 运行时常量池(二)直接内存(一)java内存区域管理C/C++每一个new操作都需要自己去delete/free,而java里面有虚拟机自动管理内存,不容易出现内存泄漏或者溢出的问题,但是不容易出现不代表不出现,了解虚拟机怎么使用和管理内存是十分重要的是,对程序优化或者问题排查有帮助。运行时区域主要分为:线程私有:程序计数器:Program Count Regist原创 2020-12-26 17:04:16 · 251 阅读 · 0 评论