初识 java
目录
前言
一、jdk,JRE和JVM之间的关系
二、JVM的内存划分
前言
初步了解 jdk,JRE,JVM 之间的关系,JVM 的内存划分。
一、jdk,JRE和JVM之间的关系
jdk 是 java 开发工具集,包含JRE;
JRE 是 java 运行时环境,包含 JVM 和 java 基础类库;
JVM 是 java 虚拟机;
三者关系如下图:
二、JVM的内存划分
JVM对所使用的内存按照功能不同,进行了划分:
虚拟机栈:保存方法调用相关的信息,方法在执行时会创建一个栈帧,栈帧中包含局部变量表,动态链接,返回地址等。方法调用结束,栈帧就会被销毁,栈帧中保存的数据也会被销毁。
堆:JVM管理的最大的内存区域,所有使用关键字 new 创建的对象都在堆上保存。程序运行时,开始创建,程序退出进行销毁。堆上的数据只要还在使用,就不会被销毁。
方法区:存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。编译出的字节码就保存在这个区域。
本地方法栈:与栈的作用类似,但保存的时本地方法的局部变量。
程序计数器:保存下一条指令执行的地址。
方法区和堆是由所有线程共享的数据区,其余都属于线程隔离的数据区。
如下图: