良心制作,JVM原理速记复习Java虚拟机总结思维导图面试必备。
一、运行时数据区域
线程私有
程序计数器
记录正在执行的虚拟机字节码指令的地址(如果正在执行的是Native方法则为空),是唯一一个没有规定OOM(OutOfMemoryError)的区域。
Java虚拟机栈
每个Java方法在执... ...
分类:
编程语言 时间:
2019-11-16 23:46:01
阅读次数:
156
程序计数器 线程私有 指向了正在执行的虚拟机字节码指令的地址;如果是本地方法,数值为空 没有 OutOfMemoryError 错误的区域 Java虚拟机栈 线程私有; 生命周期与线程相同; 代表着 Java 方法执行的内存模型:每个方法执行时的同时会创建一个栈帧(Stack Frame)用于存放 ...
分类:
其他好文 时间:
2019-11-12 21:53:42
阅读次数:
122
首先,JVM除了程序计数器之外,都可能发生内存溢出OutOfMemoryError(OOM)异常。这里主要对可能发生内存溢出的区域,原因进行总结。 1.JAVA虚拟机栈 虚拟机栈是线程私有的,虚拟机栈主要存储局部变量。Java虚拟机规范中,规定了此区域会抛出两种异常: (1)如果请求栈深度大于虚拟机 ...
分类:
编程语言 时间:
2019-09-08 00:02:58
阅读次数:
85
对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块。Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。 JVM内存结构 由上图可以清楚的看到JVM的内存空间分为3大部分: 其中栈内存可以再细分为java虚拟机栈和本地方法栈,堆内存可以划分为 ...
分类:
其他好文 时间:
2019-08-29 11:41:02
阅读次数:
70
1、 JVM的内存模型 a) Java虚拟机的内存空间分为五个部分:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区 b) 程序计数器:程序计数器中存放的是当前线程正在执行的字节码指令的地址。如果当前线程执行的一个本地方法,那么当前的程序计数器为空。 i. 字节码解释器通过程序计数器来依次读取指 ...
分类:
其他好文 时间:
2019-08-19 13:00:34
阅读次数:
59
两个名词的对比 java内存模型 定义了线程和主内存之间的抽象关系,即Jvm在计算机内存中的工作方式 java内存区域 内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。 Java运行时数据区域 Java运行时数据区域主要可以分为五个区域: 1.程序计数器 2.Java虚拟机栈 3 ...
分类:
编程语言 时间:
2019-08-17 22:00:31
阅读次数:
94
Java 虚拟机可以看作一台抽象的计算机,如同真实的计算机,它也有自己的指令集和运行时内存区域。 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存(运行时内存区域)划分为若干个不同的数据区域。 如下图所示: 一、程序计数器 Program Counter Register 定义:程序 ...
分类:
编程语言 时间:
2019-08-05 15:55:51
阅读次数:
170
JVM内存管理 JVM将内存划分为5个部分:堆、方法区、PC寄存器(也叫程序计数器)、虚拟机栈、本地方法栈 PC寄存器(程序计数器):用于记录当前线程运行时的位置,每一个线程都有一个独立的程序计数器,线程的阻塞、恢复、挂起等一系列操作都需要程序计数器的参与,因此必须是线程私有的。 java 虚拟机栈 ...
分类:
编程语言 时间:
2019-08-02 14:49:18
阅读次数:
89
(一) 程序计数器(program counter register线程私有) 当前线程执行字节码的行号指示器 1. 分支、循环、跳转、异常处理、线程恢复等依赖计数器完成 2. 当执行的是native方法时,值为空 3. Jvm中唯一没有内存溢出的 (二) Java虚拟机栈(Java virtual ...
分类:
其他好文 时间:
2019-07-06 00:53:07
阅读次数:
130
JVM的内存结构根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1.Java虚拟机栈:线程私有;每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等;每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。2.堆:线程共享;被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例。3.方法区:线程共享;被所
分类:
数据库 时间:
2019-07-04 17:18:32
阅读次数:
144