JVM
文章平均质量分 92
@追风少年
"code".equals("life") ? "false" : "success"
展开
-
深入理解Java虚拟机(五):终结篇
本篇我们主要总结一下运行时栈帧结构以及编码器优化技术。 一、运行时栈帧结构 Java虚拟机以方法作为最基本的执行单元,“栈帧”(Stack Frame)则是用于支持虚拟机进行方法调用和方法执行背后的数据结构,它也是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。 每 一个方法从调用开始至执行结束的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址和一些额外的附加信息。 在这里我们主要讲.原创 2021-02-25 23:44:17 · 124 阅读 · 2 评论 -
深入理解Java虚拟机(四)
这里我们主要总结一下Java虚拟机中的 类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。 一、类加载的生命周期 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Usi.原创 2021-02-24 22:23:22 · 149 阅读 · 0 评论 -
深入理解Java虚拟机(三)
我们主要介绍一下垃圾收集器。本章主要介绍经典垃圾收集器 如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。 新生代收集器 1、Serial收集器 (Serial中文翻译为:依次的,顺序的) 大家只看名字就能够猜到,这个收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作线程,直到它收集结束。 简单而高效(与其他收集器的单线程相比) 客户端模式默认收集器 采用复.原创 2021-02-23 18:39:18 · 191 阅读 · 2 评论 -
深入理解Java虚拟机(二)
第二篇,主要来说一下Java虚拟机的垃圾收集算法。 一、判断对象是否 “已死” 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(“死去”即不可能再被任何途径使用的对象)。 判断对象是否 “已死” 有两种算法: 引用计数算法 在对象中添加一个引用计数器,每当有一个地方 引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可 能再被使用的。 引用计数算法有一个缺点就.原创 2021-02-22 22:33:32 · 199 阅读 · 4 评论 -
深入理解Java虚拟机(一)
在此之前我们先来看一下JDK和JRE。 我们可以把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。 可以把Java类库API中的Java SE API子集和Java虚拟机这两部分统称为 JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。 Java内存区域 一、运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分.原创 2021-02-22 19:18:55 · 1283 阅读 · 11 评论