Java内存机制JVM是如何实现高效管理内存资源的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2077个文字,预计阅读时间需要9分钟。
Java内存划分主要包括:- PC寄存器:用于记录线程当前执行的内存地址(Java是多线程的,一线程执行完毕后,需要再次获得执行权时,Java需要知道该线程的执行地址);- Java堆:存储对象实例和数组。
java内存划分java内存分为:pc寄存器用于记录线程当前执行的内存地址(java是多线程的当线程a失去执行权后再次获得执行权时java需要知道a线程执行java 内存划分
java 内存分为:
- pc寄存器用于记录线程当前执行的内存地址 (java 是多线程的 当线程a 失去执行权后 再次获得执行权时 java 需要知道 a线程执行到了哪一步代码 也就是 内存地址)。
- 本地方法栈本地方法栈 又叫做 c栈 用于 跟踪native 方法(调用非java 方法)的执行状态和 pc寄存器类似。
- 栈线程独有存储 对象的引用以及类中的局部变量方法参数返回值等。每创建一个线程jvm 就会为这个线程创建一个对应的java 栈 在这个java 栈中会包含多个栈帧 这些栈帧 是由多个方法关联起来的,每个一个方法就是一个栈帧 ,顶部的栈帧就是当前执行的方法 ,栈帧 中包含 方法的局部变量 方法的返回值等。
- 堆线程共享是存储java 对象和成员变量的地方注意子类的会继承父类的非静态属性。
- 方法区存储类信息 存储常量信息包括字符串信息。 方法区是一个规范不是具体的存储位置。 在jdk8之前的hotspot虚拟机中用永久区实现了方法区(可以理解为方法区的存储位置在永久区中)。
- 常量池顾名思义存放常量(常量池 在 方法区中)。
本文共计2077个文字,预计阅读时间需要9分钟。
Java内存划分主要包括:- PC寄存器:用于记录线程当前执行的内存地址(Java是多线程的,一线程执行完毕后,需要再次获得执行权时,Java需要知道该线程的执行地址);- Java堆:存储对象实例和数组。
java内存划分java内存分为:pc寄存器用于记录线程当前执行的内存地址(java是多线程的当线程a失去执行权后再次获得执行权时java需要知道a线程执行java 内存划分
java 内存分为:
- pc寄存器用于记录线程当前执行的内存地址 (java 是多线程的 当线程a 失去执行权后 再次获得执行权时 java 需要知道 a线程执行到了哪一步代码 也就是 内存地址)。
- 本地方法栈本地方法栈 又叫做 c栈 用于 跟踪native 方法(调用非java 方法)的执行状态和 pc寄存器类似。
- 栈线程独有存储 对象的引用以及类中的局部变量方法参数返回值等。每创建一个线程jvm 就会为这个线程创建一个对应的java 栈 在这个java 栈中会包含多个栈帧 这些栈帧 是由多个方法关联起来的,每个一个方法就是一个栈帧 ,顶部的栈帧就是当前执行的方法 ,栈帧 中包含 方法的局部变量 方法的返回值等。
- 堆线程共享是存储java 对象和成员变量的地方注意子类的会继承父类的非静态属性。
- 方法区存储类信息 存储常量信息包括字符串信息。 方法区是一个规范不是具体的存储位置。 在jdk8之前的hotspot虚拟机中用永久区实现了方法区(可以理解为方法区的存储位置在永久区中)。
- 常量池顾名思义存放常量(常量池 在 方法区中)。

