JVM学习
1.java内存区域
1.程序计数器(线程私有):保存当前线程所执行的字节码指令的地址
2.java虚拟机栈(线程私有):每个方法在执行的时候都会创建一个栈帧,方法从调用到执行完成的过程对应栈帧在虚拟机栈中入栈到出栈的过程
3.本地方法栈(线程私有):类似于Java虚拟机栈,只不过Java虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈为虚拟机使用到的Native方法服务。
4.Java堆 (Java Heap)(线程共享):唯一目的就是用于存放对象实例,内存不够且无法拓展内存时,抛出OutOfMemoryError
新生代:Eden、from区、to区
老年代:
元空间(1.8之前为永久代)
5.方法区(线程共享):存储已被虚拟机加载的类信息、常量/静态变量即时编译器编译后的代码等
运行时常量池