java虚拟机运行时数据区:
1 程序计数器:占有很小的内存,是当前线程所执行的字节码行号指示器,线程私有的
2 Java虚拟机栈 :线程私有的,为虚拟机执行Java方法(也就是字节码)服务
3本地方法栈: 基本同Java虚拟机栈,但是为虚拟机使用的Native方法服务(Native 表示不是用Java语言写的,而是用C++或其他写的)
4Java堆:Java时java虚拟机所管理的内存中最大的一块,线程共享,用来存放几乎所有的java对象实例。可以分为新生代和老生代,更细致的分为eden空间、from Survivor空间和To survivor空间
5方法区(有的人叫永久代):线程共享的内存区域,它用来存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
6 运行时常量池:是方法区的一部分,用于存放编译器生成的各种字面量和符号引用