Java虚拟机内存模型:
程序计数器:一块很小的内存空间,当线程数量超过CPU数量时,线程之间根据时间片轮询抢夺CPU资源,对于单核CPU而言,每一时刻,只能有一个线程运行,而其他线程必须切换出去。一个线程都必须拥有一个独立的程序计数器,用于记录下一条要运行的指令,各个线程之间的计数器互相不影响,独立工作。如果当前线程执行的是一个java方法,则程序计数器记录正在执行的Java字节码地址,如果当前线程正在执行的是一个Native方法,则程序计数器为空。

Java虚拟机栈:线程私有的内存空间,和Java线程同一时间创建,保存局部变量,部分结果,并参与方法的调用和返回。

本地方法栈:管理本地方法的调用

Java堆

方法区:保存的是类的元数据,常量池,域信息,方法信息。