Java Web应用程序在JVM中的执行过程

Java Web 应用开发完成,编译打包后得到一个 War 包,将这个 war 放入到 Tomcat 容器路径下,启动 Tomcat 就可以通过 HTTP 访问这个 Web 应用了。

Java Web 应用是被 Tomcat 加载运行的,所以也称 Tomcat 为 Web 容器。

阅读更多

JVM虚拟机(3):概念、构造、垃圾回收

JVM 全称是 Java Virtual Machine,属于程序虚拟机。

JVM 封装了一组自定义的字节码指令集,有自己的程序计数器和执行引擎,内存管理机制,线程及栈管理机制,看起来就像一台完整的计算机,这就是JVM被称为机器的的原因。

阅读更多

JVM虚拟机(2):JVM 内存泄漏与内存溢出及问题排查

Java 的一个很重要的优点就是提供了垃圾回收器(Garbage Collection,GC)来自动管理内存,不用向 C 语言样需要开发人员手动来释放内存。但也不等于完全不管内存的使用,系统在线上长期运行后,可能出现内存泄漏耗尽内存,系统卡死或崩溃。

若剩余内存满足不了申请的需要,或申请不到连续内存,就会存在内存溢出问题(OOM),系统就会抛出 Error,导致业务逻辑无法正常执行。

对开发人员来说应该能分析 内存泄漏内存溢出 问题的根源,彻底解决问题,而不仅仅是重启应用或扩大内存。

阅读更多

JVM虚拟机(1):JVM 监控调优-自带命令

JDK 中自带了一些非常实用的 JVM 性能分析和故障监控的小工具。

也有一些第三方分析工具,如 Arthas。基于开发工具的 JVM 分析工具,如 IDEA 的 VisualVM 插件,Eclipse 的 MAT(Memory Analyzer Tool)。

了解 JVM 内存和性能分析工具及使用,对快速判断和定位线上问题是非常有帮助的。

阅读更多