jvm内存
.java结尾的java源码文件通过java编译器编译成.class字节码文件。然后由jvm中的类加载器加载字节码文件,加载完成之后,由jvm加载引擎加载。java内存管理指的是jvm执行程序存储数据的空间和相关信息。这块空间就成为运行时数据区
jvm内存管路
- 程序计数器:保存程序当前执行指令的地址。每个线程都有自己独立的程序计数器。
- 栈:java栈存放一个一个栈帧。每个栈帧对应一个方法。当一个线程执行一个方法的时候,就会创建一个栈帧,并且将建立的栈帧压栈。线程执行完该方法,该栈帧就出栈。栈帧中存放的是局部变量表,操作数栈,指向运行时常量池的引用,方法返回地址。
- 本地方法栈:是为执行本地方法服务的
- 堆:存放对象和数组,是线程共享的
- 方法区:也是线程共享。方法区中存储了类的信息(类名,方法信息,字段信息),静态变量,常量,编译器编译后的代码等
参考资料:https://www.cnblogs.com/dolphin0520/p/3613043.html