共享区域:所有的线程共享储存区域; 独立区:每一个线程都有自己的独有的这部分; 程序计数器 程序计数器是一块较小的内存空间,它的作用有些类似于操作系统中的进程的PCB。记录着执行代码已到达的位置。像:分支,跳转,循环,异常处理,恢复执行,都依靠这个计数器;每一个县城都有自己独有的计数器;虚拟机栈 虚拟机栈负责的是线程中方法的调用;每一个方法执行时都会船舰一个栈帧,栈帧存储: 局部变量表;操作数栈;动态链接;方法出口等信息;过程: 每个方法的调用都意味着创建一个栈帧;栈顶的方法就是正在活跃的方法;方法执行完成时,栈帧会弹出栈帧的元素作为返回值;并且清除栈帧;局部变量表:可以有,Java的基本类型;引用类型;本地方法栈 本地方法栈和虚拟机栈很相似,不同的是: 虚拟机的站立的方法全是线程的;本地方法栈里的方法全是操作系统的本地方法;线程私有;堆 堆里面存放的几乎所有的实例对象;堆有垃圾收集器自动回收;对的内存占用是jvm中最大的;线程共有字符串常量池也在堆中方法区 方法区线程共有用来储存已经被虚拟机加载的类信息,常量,静态变量。和已编译后的代码数据;通过反射获得到的类型,方法名,字段名,访问修饰符等信息就是从方法去获取;