摘要: 1.对象的实例化 提到对象的实例化,我们可能会想到几个问题。对象在JVM中是怎么存储的?对象里面有什么?接下来,我们就来探讨一下对象的实例化以及回答一下这两个问题。 首先我们用图例来说明对象的实例化: 2.对象的内存布局 内存布局的图例: 3.对象访问定位 JVM对象是如何通过栈帧中的对象引用访问到 阅读全文
posted @ 2021-05-07 19:18 一只胖麻圆 阅读(48) 评论(0) 推荐(0)
摘要: 常见面试题 ** 1.JVM内存模型,有哪些区,分别是干什么的?** * 答: * 1.程序计数器(PC Register):JVM中的PC寄存器是对物理PC寄存器的一种模拟。主要用来存储指向下一条指令的地址,也即将要指向的指令代码。由执行引擎读取下一条指令。在JVM规范中,每个线程都有它自己的程序 阅读全文
posted @ 2021-05-06 16:35 一只胖麻圆 阅读(348) 评论(0) 推荐(0)
摘要: 1.方法区在哪里? 《Java虚拟机规范》中说明:"尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。"但对于HotSpotJVM而言,方法区还有一个别名叫Non-Heap(非堆),目的就是要和堆分开。所以我们可以把方法区看成一块独立于Java堆的内存 阅读全文
posted @ 2021-05-06 15:34 一只胖麻圆 阅读(142) 评论(0) 推荐(0)
摘要: 1.逃逸分析:代码优化 使用逃逸分析,编译器可以对代码做以下的优化: 1.栈上分配。将堆分配转化为栈分配,如果一个对象在子程序中被分配,要使指向该对象的指针永远都不会逃逸,对象可能是栈分配的候选,而不是堆分配。 2.同步省略。如果一个对象被发现只能从一个线程被访问到,那么对于这个对象的操作可以不考虑 阅读全文
posted @ 2021-05-03 15:34 一只胖麻圆 阅读(56) 评论(0) 推荐(0)
摘要: 1.(Minor,Major,Full)三种GC区别 JVM在进行GC时,并非每次都对三个内存(新生代,老年代,方法区)区域一起回收的,大部分时候回收的都是指新生代。 针对HotSpot VM的实现,它里面的GC按照回收区域又分为两大类型:一种是部分收集(Partial GC),一种是整堆收集(Fu 阅读全文
posted @ 2021-05-03 10:15 一只胖麻圆 阅读(105) 评论(0) 推荐(0)
摘要: 1.堆(Heap)的核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 *堆内存的大小是可以调节的。 《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它 阅读全文
posted @ 2021-05-01 16:40 一只胖麻圆 阅读(169) 评论(0) 推荐(0)
摘要: 本地方法接口: 什么是本地方法? 简单来讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法,该方法的实现由非Java语言实现,比如C,这个特征并非Java所特有,很多其他的编程语言都有这一机制,比如C中,你可以用exter 阅读全文
posted @ 2021-04-28 23:43 一只胖麻圆 阅读(50) 评论(0) 推荐(0)
摘要: 1.方法的调用 在JVM中,将符号引用转换为调用方法的直接引用与方法的绑定机制相关。 ** 静态链接** 当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知,且运行期保持不变时。这种情况下将调用方法的符号引用转换为直接引用的过程称之为静态链接。 ** 动态链接** 如果被调用的方 阅读全文
posted @ 2021-04-28 19:16 一只胖麻圆 阅读(81) 评论(0) 推荐(0)
摘要: 1.操作数栈(Operand Stack) 每个独立的栈帧中除了包含局部变量表以外,还包含一个后进先出(Last-In-First-Out)的操作数栈,也可以称之为表达式栈(Expression Stack)。 操作数栈,在方法执行的过程中,根据字节码指令,往栈中写入数据或提取数据,即入栈(push 阅读全文
posted @ 2021-04-28 16:52 一只胖麻圆 阅读(75) 评论(0) 推荐(0)
摘要: 1.虚拟机栈概述 ** 虚拟机栈出现的原因:** 由于跨平台性的设计,Java指令都是根据栈来设计的。不同平台CPU架构不同,所以不能使用基于寄存器的方案。当然这种设计也是有优缺点的:优点在于跨平台,指令集小,编译方便;缺点在于性能下降,实现相同的功能需要更多的指令。 JVM的内存主要是由栈和堆组成 阅读全文
posted @ 2021-04-27 12:54 一只胖麻圆 阅读(56) 评论(0) 推荐(0)