深度理解JVM
深入理解 java 虚拟机 要讲的内容 了解历史 垃圾回收机制 性能监控工具 性能调优案例实战 认识类的文件结构 类加载机制 字节码执行引擎 虚拟机编译及运行时优化 Java 线程高级 1. 环境搭建 安装 jdk 2. 内存溢出场景模拟 public class Test01 { public static void main(String[] args) { //测试内存溢出 List<Demo> list = new ArrayList<Demo>(); while(true) { list.add(new Demo()); } //不停的创建对象会一直消耗堆内存知道内存消耗完(其实不会真的将8G的内存都消耗完) //当达到一个上线时就会报出这个错误了,这时就会报出一个内存溢出 //OutOfMemoryError } } class Demo{ } 可以在你的项目下找到这个快照的错误文件 但是我们是看不懂的所以需要到 http://www.eclipse.org/mat/downloads.php 去下载一个 eclipse 的 MemoryAnalyzer 分析工具 如果你直接下载会非常慢所以选择一个其他的镜像这样下载就会快点 下载解压后打开 点击 file->Open Heap Dump 选中产生的那个文件 然后生成一个 选中这个图标可以查看我们的堆内存运行情况