Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。 JDK 1.8 之前: JDK 1.8 : 线程私有的: 程序计数器虚拟机栈本地方法栈 线程共享的: 堆方法区直接内存 (非运行时数据区的一部分)