JVM虚拟机(3):概念、构造、垃圾回收
JVM 全称是 Java Virtual Machine,属于程序虚拟机。
JVM 封装了一组自定义的字节码指令集,有自己的程序计数器和执行引擎,内存管理机制,线程及栈管理机制,看起来就像一台完整的计算机,这就是JVM被称为机器的的原因。
JVM 全称是 Java Virtual Machine,属于程序虚拟机。
JVM 封装了一组自定义的字节码指令集,有自己的程序计数器和执行引擎,内存管理机制,线程及栈管理机制,看起来就像一台完整的计算机,这就是JVM被称为机器的的原因。
Java 的一个很重要的优点就是提供了垃圾回收器(Garbage Collection,GC)来自动管理内存,不用向 C 语言样需要开发人员手动来释放内存。但也不等于完全不管内存的使用,系统在线上长期运行后,可能出现内存泄漏耗尽内存,系统卡死或崩溃。
若剩余内存满足不了申请的需要,或申请不到连续内存,就会存在内存溢出问题(OOM),系统就会抛出 Error,导致业务逻辑无法正常执行。
对开发人员来说应该能分析 内存泄漏 和 内存溢出 问题的根源,彻底解决问题,而不仅仅是重启应用或扩大内存。
JDK 中自带了一些非常实用的 JVM 性能分析和故障监控的小工具。
也有一些第三方分析工具,如 Arthas。基于开发工具的 JVM 分析工具,如 IDEA 的 VisualVM 插件,Eclipse 的 MAT(Memory Analyzer Tool)。
了解 JVM 内存和性能分析工具及使用,对快速判断和定位线上问题是非常有帮助的。