java 运行时数据区域:
程序计数器:指示当前指令运行的位置。
java虚拟机栈(java栈):在栈中以方法为单位,进行入栈和出栈。
本地方法栈:java虚拟机运行时所需要的native方法,一般用其他语言实现,有些java虚拟机将java栈与本地方法栈合二为一,列如:Hotspot。
java 堆:为对象分配内存的地方。
方法区:类信息、常量、静态变量。
常量池:方法区的一部分
直接内存:不是java虚拟机规范中定义的内存区域,但是可能会造成 OutOfMemoryError。系统部署时需要考虑
本文参考自周志明老师的《深入理解 Java 虚拟机》