JVM
- JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是虚拟出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
一、JVM的作用
- 实现了与平台的无关性:JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多个平台上不加修改的运行。
二、JVM概括图

三、JVM中每个模块介绍
- 类加载器子系统:负责加载class文件,class文件在文件开头有特定的文件标示,并且类加载器只负责class文件的加载,至于它是否可以运行,则由执行引擎决定。
- 运行时数据区:存放数据的,分为五部分(堆、方法区、虚拟机栈、本地方法栈、程序计数器)。几乎所有的关于java内存方面的问题,都集中在这块。
- 执行引擎:Class文件被加载后,会把指令和数据信息放入到内存中,执行引擎负责把这些命令解释给操作系统。
- 本地库接口:负责调用本地接口的。它的作用是调用不同语言的接口给JAVA用,它会在本地方法栈中记录对应的本地方法,然后调用该方法时就通过执行引擎加载对应的本地方法库。
备注:
1)Jvm oom问题如何排查和解决?
步骤 1:生成堆转储
heapdump /tmp/oom.hprof
步骤 2:MAT 分析
比如会发现 ConcurrentHashMap 占用了 80% 内存,其 Key 为订单 ID,Value 为订单对象。
步骤 3:Arthas 追踪写入逻辑
比如:
watch com.example.OrderCache addOrder "{params, returnObj}" -x 3 # 监控缓存写入
比如会发现订单支付完成后未调用 removeOrder 方法清理缓存。
步骤 4:修复代码
比如根据指示修改代码使用 WeakHashMap 或 Caffeine 缓存,设置过期时间。
更多java基础总结(适合于java基础学习、java面试常规题):
总结篇(9)---字符串及基本类 (1)字符串及基本类之基本数据类型
总结篇(10)---字符串及基本类 (2)字符串及基本类之java中公共方法及操作
总结篇(12)---字符串及基本类 (4)Integer对象
总结篇(14)---JVM(java虚拟机) (1)JVM虚拟机概括
总结篇(15)---JVM(java虚拟机) (2)类加载器
总结篇(16)---JVM(java虚拟机) (3)运行时数据区
总结篇(17)---JVM(java虚拟机) (4)垃圾回收
总结篇(18)---JVM(java虚拟机) (5)垃圾回收算法
总结篇(19)---JVM(java虚拟机) (6)JVM调优
总结篇(24)---Java线程及其相关(2)多线程及其问题
总结篇(25)---Java线程及其相关(3)线程池及其问题
总结篇(26)---Java线程及其相关(4)ThreadLocal
总结篇(27)---Java并发及锁(1)Synchronized
总结篇(31)---JUC工具类(1)CountDownLatch
本文介绍了Java虚拟机(JVM)的概念及其关键组成部分,包括类加载器子系统、运行时数据区、执行引擎和本地库接口。此外,还详细阐述了JVM如何实现跨平台运行,并提供了深入理解JVM所需的进一步阅读材料。

被折叠的 条评论
为什么被折叠?



