本文章耗费十天写完,请大家认真看完,面试就差不多了,建议用电脑看。 文章目录 一、垃圾回收器分类 二、评估GC的性能指标 三、吞吐量 VS 暂停时间 四、垃圾回收器发展史 五、七大经典的垃圾回收器 六、各个垃圾回收器的介…
分类:java虚拟机
基本数据类型的成员变量存在JVM的哪块内存区域里?
class{ private int i; } 如上代码,基本数据类型并不都是存放在虚拟机栈中,在《深入理解JVM》中 方法内定义的基本数据类型放在栈桢中,栈里面的数据是线程私有的,不共享。 方法外定义的全局变量,存放在…
从一个class文件深入理解Java字节码结构
前言 我们都知道,Java程序最终是转换成class文件执行在虚拟机上的,那么class文件是个怎样的结构,虚拟机又是如何处理去执行class文件里面的内容呢,这篇文章带你深入理解Java字节码中的结构。 1.Demo源…
字节码文件及字节码指令
我记得开始学习Java的第一堂课时,我的大学老师是这样说的,Java号称是“一次编写,到处运行”,为什么有底气这样说,是因为Java程序并不是直接运行在操作系统上的,它通过不同操作系统上的Java虚拟机实现了“到处运行”…
标记 - 整理算法
标记 – 整理算法 复制算法为什么不适合老年代 复制收集算法在对象存活率较高时需要进行较多的复制操作,效率将会降低。更关键的是,如果不想浪费50%的内存空间,就需要提供额外的空间进行分配担保。由于老年代中对象…
深入理解JAVA虚拟机学习笔记15——字节码执行引擎(解释执行)
每天进步一点点! 在第二篇方法调用中,我们主要学习的是确定目标方法,这篇我们就来看看方法内容的具体执行。 目前基于虚拟机的语言中,既有编译执行的(以c,c++为代表),也有解释执行的(比如Python,JavaScrip…
字节码(.class)文件解读
字节码文件是什么 我们在命令后使用 java 命令,就能将java源文件(.java)编译成对应的字节码文件(.class)。字节码文件是一种八位字节的二进制流文件,各个数据项按照一定顺序从前到后紧密排列。因此,这样的安…
深入理解Java虚拟机-虚拟机执行子系统
本博客主要参考周志明老师的《深入理解Java虚拟机》第二版 读书是一种跟大神的交流。阅读《深入理解Java虚拟机》受益匪浅,对Java虚拟机有初步的认识。这里写博客主要出于以下三个目的:一方面是记录,方便日后阅读;一方面…
虚拟机栈的栈元素是什么?可以了解一下!
文章目录 简介 1. 运行时栈帧结构 1.1 局部变量表 1.2 操作数栈 1.3 动态连接 1.4 方法返回地址 参考 简介 JVM以方法作为最基本的执行单元,栈帧则是用于支持JVM进行方法调用与方法执行背后的数据结构…
读深入理解Java虚拟机-3
前言 对于Java来说,垃圾回收大部分人都把这个技术作为其伴生的产物,但是实际上GC技术的历史远比Java久远。并且对于我们的程序来说,垃圾回收机制的存在是十分有必要的,在通常情况下,…
深入java虚拟机面试
请你说一下jvm: 对于虚拟机我给它分成三大块内容分别是:内存管理、类加载引擎技术、线程安全 首先就内存管理来说, 虚拟机给内存划分为:堆、栈、方法区、运行时常量池、本地方法栈、直接内存。 堆是线程共享的内存块,而堆又细…
深入理解java虚拟机---双亲委派模型
双亲委派模型是java类加载器所使用的模型. 双亲委派模型的工作过程:如果一个类加载器收到了类加载器的请求.它首先不会自己去尝试加载这个类.而是把这个请求委派给父加载器去完成.每个层次的类加载器都是如此. 因此所有的加载…