Java虚拟机管理的内存包括以下几个运行时数据区域:
1.程序计数器:
程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java
多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰。
2.Java虚拟机栈
Java虚拟机栈描述的是
Java
方法的执行模型:每个方法执行的时候都会创建一个帧栈用于存放局部变量表,操作栈,动态链接,方法出口等信息。一个方法的执行过程,就是这个方法对于帧栈的入栈出栈过程。
3.本地方法栈
本地方法栈与Java
虚拟机栈功能相似。
Java
虚拟机栈储存
Java
方法执行的数据,本地方法栈储存
Native
方法执行数据。
4.堆
堆是Java
虚拟机管理内存中最大的一块,也是垃圾回收经常光顾的地方。堆里存放的是对象的实例。
5.方法区域
方法区域存放的是被虚拟机加载的类信息,常量,静态变量,即时编译后的代码等数据。Java
虚拟机规范中将它描述成堆的一部分。常量池是方法区域的一部分,里面存放编译期生成的各种字面量和符号引用。
另外,还有直接内存,它不是虚拟机运行时数据的一部分,也不是Java
虚拟机规范中定义的内存区域,但是这部分内存是会被频繁的使用的。
- 大小: 30.8 KB
分享到:
相关推荐
运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),方法参数局部变量(栈)等。 垃圾回收机制: java 语言的优势之一就是它的自动内存管理,主要回收运行时数据区域的堆内存里的数据 ...
小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。 小池塘B(非堆内存):包括所有线程之间共享的一个...
深入理解JVM第二章的运行时数据区域
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。其他的数据依赖于每一个线程,在线程创建的时候创建,在线程退出的时候销毁。
03 JVM 运行时数据区概述及线程的 PPT 重绘。讲述 Java 虚拟机 运行时数据区所处位置,结构划分,以及各个区域与线程的关系。
常量池静态常量池即*.class文件中的常量池,用于存放字面量和符号引用运行时常量池是jvm运行期间,存储常量的数据结构运行时常量池概念运行时常量池(Runti
一、JVM概述 二、JVM的体系结构 三、JVM运行时数据区 3.1 PC寄存器 3.2 JVM栈 3.3 堆(Heap) 3.4 方法区域 3.5 运行时常量池 3.6本地方法堆栈 四、Jvm堆 五、Jvm调优
JVM 学习,包含运行数据区域,GC,JMM 等常见问题
4. 运行时数据区 关于运行时数据官方解释:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5 4.1 堆 (heap) 堆在虚拟机中是一块共享区域, 存放 对象实例 和数组; 堆在虚拟机启动的时候...
由于JVM运行的实体是线程 而每个线程创建时JVM都会为其创建工作内存 工作内存是每个线程的私有数据区域 而JAVA内存模型规定所有变量都存储在主内存 主内存是共享内存区域 所有线程都可以访问 但线程对变量的...
最新jvm面试题合集,涵盖JVM运行时数据区、垃圾回收算法、垃圾回收器、类加载机制、JIT即时编译等核心知识点及常见面试题,一书在手,天下我有。 JVM内存结构:JVM的内存结构主要包括堆内存、方法区、栈(包括Java...
包括JVM执行过程、虚拟机类加载机制、运行时数据区、GC、类加载器、内存分配与回收策略等,全套视频加资料高清无密码 第1讲 说在前面的话 免费 00:05:07 第2讲 整个部分要讲的内容说明 免费 00:06:58 第3讲...
详细介绍了JVM 内存管理相关知识 内存空间( VM运行时数据区域) ◦ 内存结构 ◦ 内存空间 内存分配 内存回收(GC) 内存分析工具
JVM在运行时将数据划分为了6个区域来存储,而不仅仅是大家熟知的Heap区域,这6个区域图示如下: JVM内存的分配结构示意图 下面将逐一介绍下各个区域所做的工作及其充当的功能。 PC Register(PC...
虚拟机的历史版本和JAVA内存分配,未来的虚拟机技术, 运行时数据区域,方法的出入栈,栈上分配
本文从jvm的基本框架、运行时数据区域、垃圾收集及算法、类加载等几个方面介绍jvm,绝对具有使用价值,对理解jvm有醍醐灌顶的作用。
JVM是什么 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的...程序执行期间使用各种运行时数据区域。其中一些数据区域是在Java虚拟机启动时
推荐有一定java基础人员查看,内置说明了对象的内存布局、运行时数据区域、对象的访问定位、垃圾回收算法、垃圾收集器、jvm工具、案例调优、以及一系列注意说明
JVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area)。 下面我们从每个区域的用途,涉及的问题等方面来简单的说一说JVM的内存结构。 方法区 作用:用于存放已被加载的...
堆 主要放了一些存储的数据,比如对象实例,数组···等,它和方法区都同属于 线程共享区域 。也就是说它们都是 线程不安全 的 #④ 栈 栈 这是我们的代码运行空间。我们编写的每一个方法都会放到 栈 里面运行。 ...