Java8内存模型中,PermGen与Metaspace有何实例解析差异?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2758个文字,预计阅读时间需要12分钟。
JVM内存模型基于JVM规范,分为虚拟机栈、堆、方法区、程序计数器和本地方法栈五个部分。
1. 虚拟机栈:每个线程有一个私有的栈,用于存储局部变量和方法调用等信息。栈随线程的创建而创建,随线程的结束而销毁。
2. 堆:所有线程共享的内存区域,用于存放对象实例和数组的创建。堆的大小通常由JVM启动参数指定。
3. 方法区:存储已被虚拟机加载的类信息、常量、静态变量等数据。方法区的大小也由JVM启动参数指定。
4. 程序计数器:每个线程都有一个程序计数器,用于指示下一条要执行的指令地址。
5. 本地方法栈:为使用到 native 方法的线程提供私有的内存空间。
一、JVM 内存模型
根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。
1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。
本文共计2758个文字,预计阅读时间需要12分钟。
JVM内存模型基于JVM规范,分为虚拟机栈、堆、方法区、程序计数器和本地方法栈五个部分。
1. 虚拟机栈:每个线程有一个私有的栈,用于存储局部变量和方法调用等信息。栈随线程的创建而创建,随线程的结束而销毁。
2. 堆:所有线程共享的内存区域,用于存放对象实例和数组的创建。堆的大小通常由JVM启动参数指定。
3. 方法区:存储已被虚拟机加载的类信息、常量、静态变量等数据。方法区的大小也由JVM启动参数指定。
4. 程序计数器:每个线程都有一个程序计数器,用于指示下一条要执行的指令地址。
5. 本地方法栈:为使用到 native 方法的线程提供私有的内存空间。
一、JVM 内存模型
根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。
1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。

