摘要: HotSpot的算法细节实现 一、根节点枚举 我们以可达性分析算法中从GC Roots集合找引用链这个操作作为介绍虚拟机高效实现的第一个例子。固定可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中,尽管目标明确,但查找过程要做到高效并非一件 阅读全文
posted @ 2022-06-07 19:48 Maple~ 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 一、初识JVM规范 1、从三种角度认识JVM 1. JVM概述 JVM:Java Virtual Machine,也就是Java虚拟机,所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 JVM是通过软件来模拟Java字节码的指令集,是Java程序的运行环境 阅读全文
posted @ 2022-06-07 19:48 Maple~ 阅读(102) 评论(0) 推荐(0) 编辑
摘要: java常量池 概述 java 包括三种常量池,分别是 字符串常量池、Class 常量池(也叫常量池表)和运行时常量池。 字符串常量池(String Pool) String Pool 是 JVM 实例全局共享的,而 Runtime Constant Pool 是每个类都有一个。 JVM 用一个哈希 阅读全文
posted @ 2022-06-07 19:48 Maple~ 阅读(685) 评论(0) 推荐(1) 编辑
摘要: 一、概述 字节码文件的跨平台性 Java语言:跨平台的语言 当Java源代码成功编译成字节码后,如果想在不同平台上运行,则无需再次编译。 这个优势已经不再那么吸引人了,Python、PHP、Perl、Ruby、Lisp等有强大的编译器。 跨平台似乎已经快成为一门语言必选的特性。 Java虚拟机:跨语 阅读全文
posted @ 2022-06-07 19:47 Maple~ 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 一、执行引擎概述 一、执行引擎概述 执行引擎是Java虚拟机核心的组成部分之一。 “虚拟机”是相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理机、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集和 阅读全文
posted @ 2022-06-07 19:47 Maple~ 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 一、类加载器与类的加载过程 一、类加载器子系统作用 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。 CLassLoader只负责class文件的加载,至于他是否可以运行,则由Execution Engine决定。 加载的类信息存放于一块称为方法区 阅读全文
posted @ 2022-06-07 19:46 Maple~ 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 一、虚拟机栈概述 一、虚拟机栈出现的背景 由于跨平台性的设计,Java 的指令都是根据栈来设计的,不同平台 CPU 架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器实现容易,缺点是性能下降,实现同样的功能需要更多的指令。 二、初步印象 有不少 Java 开发人员一提到 Java 阅读全文
posted @ 2022-06-07 19:46 Maple~ 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 双亲委派模型并不是一个具有强制性约束的模型,而是Java设计者推荐给开发者们的类加载器实现方式。在 Java的世界中大部分的类加载器都遵循这个模型,但也有例外的情况,直到Java模块化出现为止,双亲委派模型主要出现过3次较大规模“被破坏”的情况。 一、在双亲委派出现之前 双亲委派模型的第一次“被破坏 阅读全文
posted @ 2022-06-07 19:46 Maple~ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 一、引用计数算法 一、垃圾标记阶段:对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象,只有被标记为已经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。 那么JV 阅读全文
posted @ 2022-06-07 19:45 Maple~ 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 学过 JVM 的同学都知道,垃圾回收可以说是 JVM 的一个非常重要的知识点了,在我们讲解垃圾回收算法和垃圾回收器之前, 我们先来讲解有关垃圾回收相关的概念吧 🏃🏃🏃 一、垃圾回收概述 1、什么是垃圾 所谓垃圾回收,那在 JVM 中啥才是垃圾呢? 其实,在 JVM 中垃圾是指在运行程序中没有任 阅读全文
posted @ 2022-06-07 19:45 Maple~ 阅读(90) 评论(0) 推荐(0) 编辑