摘要:
##堆、栈、方法区的交互关系 ###运行时数据区结构图 从线程共享与否的角度来看 所谓对象类型数据,就如上图中的Person这个类。 ##方法区的基本理解 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩”。 对于H 阅读全文
posted @ 2020-05-26 22:07
scnb
阅读(286)
评论(0)
推荐(0)
摘要:
##堆空间概述 方法区和堆都是对应着一个唯一的进程的。 ###堆的核心概述: 一个java应用程序对应一个JVM实例,一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。并且是JVM管理的最大的一块内存空间。 堆内存的空间 阅读全文
posted @ 2020-05-26 16:28
scnb
阅读(178)
评论(0)
推荐(0)
摘要:
##本地方法栈的理解 Java虚拟机栈用于管理java方法的调用,而本地方法栈用于管理本地方法的调用。 注意:本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态扩展的内存大小。 当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。它和虚拟机有同样的权限。 ①本地方法 阅读全文
posted @ 2020-05-26 15:44
scnb
阅读(68)
评论(0)
推荐(0)
摘要:
##本地方法接口的理解 什么是本地方法: 简单的讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java方法:该方法的实现并非由java语言实现。 在定义一个Native Method时,并不提供方法体(有时候就像定义一个java 阅读全文
posted @ 2020-05-26 15:43
scnb
阅读(77)
评论(0)
推荐(0)
摘要:
虚拟机栈出现的背景: 由于跨平台的特性,java的指令都是根据栈来设计的,不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器实现容易,缺点是性能下降,实现同样的功能需要更多的指令。 内存中的栈与堆: 栈是运行时的单位,堆是存储的单位。 栈解决程序的运行问题,即程序如 阅读全文
posted @ 2020-05-26 15:41
scnb
阅读(213)
评论(0)
推荐(0)
摘要:
JVM中的程序计数器(Program Counter Register)中,Register的命名源于CPU的寄存器。 注意,这里并非指的是物理寄存器,JVM中的PC寄存器是对物理PC寄存器的一种模拟抽象。 PC寄存器用来存储指向下一条指令的地址,即将要执行的指令代码。由执行引擎读取下一条指令。 P 阅读全文
posted @ 2020-05-26 15:26
scnb
阅读(80)
评论(0)
推荐(0)
摘要:
JVM的内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。 HotSpot JVM架构(该图要会画,记下来) Java虚拟机定义了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建 阅读全文
posted @ 2020-05-26 15:24
scnb
阅读(68)
评论(0)
推荐(0)

浙公网安备 33010602011771号