方法区:所有线程共享,用于存放加载的类(class)信息、静态变量(static)、常量(final)等数据。
堆:所有线程共享,存放用new关键字创建的对象。
虚拟机栈:线程隔离,存放类中调用的方法和局部变量,生命周期和线程相同。
本地方法栈:线程隔离,存放jdk自带的方法,部分jdk把本地方法栈合到虚拟机栈中。
程序计数器:线程隔离,程序执行到的当前行号的指示器,改变程序计数器的值,来选择下一条要执行的语句。