HotSpot是较新的Java虚拟机技术,用来代替JIT技术,可以大大提高Java运行的性能
HotSpot 使用的GC
GC 即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。
1.1.引用计数
引用计数存储对特定对象的所有引用数,也就是说,当应用程序创建引用以及引用超出范围时,jvm必须适当增减引用数。当某对象的引用数为0时,便可以进行垃圾收集。
1.2.对象引用遍历
早期的jvm使用引用计数,现在大多数jvm采用对象引用遍历。对象引用遍历从一组对象开始,沿着整个对象图上的每条链接,递归确定可到达(reachable)的对象。如果某对象不能从这些根对象的一个(至少一个)到达,则将它作为垃圾收集。在对象遍历阶段,gc必须记住哪些对象可以到达,以便删除不可到达的对象,这称为标记(marking)对象。
下一步,gc要删除不可到达的对象。删除时,有些gc只是简单的扫描堆栈,删除未标记的未标记的对象,并释放它们的内存以生成新的对象,这叫做清除(sweeping)。这种方法的问题在于内存会分成好多小段,而它们不足以用于新的对象,但是组合起来却很大。因此,许多gc可以重新组织内存中的对象,并进行压缩(compact),形成可利用的空间。
为此,gc需要停止其他的活动活动。这种方法意味着所有与应用程序相关的工作停止,只有gc运行。结果,在响应期间增减了许多混杂请求。另外,更复杂的gc不断增加或同时运行以减少或者清除应用程序的中断。有的gc使用单线程完成这项工作,有的则采用多线程以增加效率。
2.几种垃圾回收机制
.引用计数收集器 跟踪收集器 压缩收集器 拷贝收集器 按代收集的收集器
自适应收集器
火车算法 垃圾回收机制 结合了 各种 垃圾回收机制 HotSpot 采用类似的
本质上垃圾回收机制是 JVM 虚拟机运行的program 中1个处理机制 此功能 一直在更新了 保证了我们在java JVM 的稳健运行
收尾:每个类都有一个特殊的方法finalizer,它不能被直接调用,而被JVM在适当的时候调用,通常用来处理一些清理资源的工作,因此称为收尾机制。
|
分享到:
相关推荐
### Java学习笔记——Java基础知识整理 #### 一、Java技术入门 Java是一种广泛使用的编程语言,因其跨平台性、安全性和高效性而受到青睐。Java最初由Sun Microsystems开发,并于1995年首次发布。 ##### 1. Sun ...
Java 基础面试考察点 Java 基础面试考察点是 Java 开发人员必须掌握的知识点,涵盖了 Java 基础知识、多线程、JVM 相关知识点等几个方面。 Java 基础知识点 1. Java 内部集合类:ArrayList 和 LinkedList 的区别...
Java核心面试知识整理包括了对JVM内存区域、...总结而言,这份面试知识点整理为Java开发者提供了一个全面、系统的复习框架,帮助面试者巩固和加深对Java核心技术的理解,以便在面试中展现出扎实的理论基础和实践能力。
Java核心知识整理 Java是一种广泛使用的面向对象编程语言,它具有跨平台、对象导向、简单易学等特点。...以上是Java核心知识的主要组成部分,对于Java工程师来说,掌握这些知识点是构建高质量Java应用的基础。
1. **Java基础**:首先,你需要熟悉Java的基础语法,包括变量、数据类型、运算符、流程控制(如if-else,switch,for,while循环)、数组以及方法的定义与调用。 2. **类与对象**:理解面向对象编程(OOP)的概念是...
Java是目前企业开发中最常用的编程语言之一,Java面试知识点涵盖了Java语言的方方面面,包括Java基础知识、Java高级知识、Java设计模式、Java框架等等。以下是Java核心面试知识点的整理。 一、JVM JVM(Java ...
1. **Java基础** - **数据类型**:Java有两大类数据类型,基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。理解它们的区别和用法是基础。 - **运算符**:包括算术、比较、逻辑和位运算符,掌握...
GC的主要目标是识别并回收不再使用的对象,以避免内存泄漏,并整理堆内存,防止碎片产生,从而确保Java应用程序的稳定性和性能。 首先,Java中的对象都是在堆内存中分配的,当一个对象不再被任何引用指向,即成为...
### JAVA核心知识整理 ...以上内容覆盖了JAVA核心知识整理中的关键知识点,包括JVM的基础知识、垃圾回收机制、引用类型、GC垃圾收集器的选择、IO/NIO模型及其实现、类加载机制以及常见的集合类等。
这份"java常用技术整理-基础架构方面.rar"的压缩包文件很可能包含了一系列关于Java基础架构技术的文章、笔记或教程,旨在帮助开发者系统地学习和掌握这些知识。 首先,Java的基础架构涉及JVM(Java虚拟机)。JVM是...
Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,...这本整理版的面试题集全面地覆盖了Java开发者的必备技能,无论你是初学者还是资深开发者,都可以从中学习到很多实用的知识,并为面试做好充分准备。
Java虚拟机(JVM)是Java程序运行的基础,它的配置参数和垃圾收集(GC)机制对于优化应用程序性能至关重要。本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数...
在Java编程语言中,垃圾回收(Garbage Collection, GC)是一项至关重要的机制,它自动管理内存,释放不再使用的对象,防止内存泄漏。本篇将深入探讨如何监控Java的垃圾回收,帮助开发者提升应用性能和稳定性。 Java...
本专题将深入探讨Java GC的基础知识,包括其工作原理、类型、调优策略以及相关工具的使用。 在Java中,内存分为堆内存(Heap)和栈内存(Stack)。堆内存主要用于存储对象实例,而栈内存则存储方法的局部变量。当一...
这份“JAVA核心面试知识整理-最全.zip”压缩包提供了全面的Java面试准备材料,涵盖了Java基础、Java虚拟机(JVM)、多线程并发以及算法和Java中间件等多个关键领域。 首先,让我们深入Java基础。这部分通常包括Java...
Java 基础面试知识点详解 1. **Collection 和 Collections的区别** - Collection是集合类的顶级接口,包括...以上是Java基础面试中常见的知识点,理解和掌握这些内容对于面试至关重要,同时也反映了程序员的基本功。
这份"JAVA核心面试知识整理"的资源涵盖了广泛的Java技术栈,是准备Java面试或者深化技术理解的宝贵资料。以下是对其中主要知识点的详细说明: 1. **JVM(Java虚拟机)**:JVM是Java程序运行的基础,它负责解析....
Java后端面试问题涵盖了许多核心知识点,主要集中在Java虚拟机(JVM)、Java基础、并发编程和性能调优等方面。以下是对这些领域的详细说明: ### JVM #### 内存区域与垃圾回收 JVM内存主要分为堆(Heap)、栈...
接下来,根据标签"java 大数据 数据库",我们可以推断文档内容不仅限于Java基础,还可能涉及Java在大数据和数据库领域的应用。 根据提供的部分内容,我们可以详细地解释几个关键知识点: 1. JVM(Java虚拟机):...