java内存区域, 各个模块的作用
线程共享:堆,方法区,直接内存
线程私有的:程序计数器,虚拟机栈,本地方法栈
程序计数器:记录线程执行的位置行数,为了线程切换后能恢复正确的执行位置
虚拟机栈:存储局部变量表,常量池的引用,方法的出口等,一个方法的执行意味着一个栈帧入栈出栈的过程
本地方法栈:与栈类似,它用的是虚拟机的native方法
为保证线程中局部变量不被其他线程访问到,所以虚拟机栈和本地方法栈是线程私有的
堆:是java虚拟机管理内存最大的一块,存储实例对象和数组,是垃圾回收管理主要区域
方法区:存储类信息,常量和静态变量,接口,变量,方法名等描述信息