美文网首页
垃圾回收相关概述

垃圾回收相关概述

作者: 乙腾 | 来源:发表于2021-02-17 22:23 被阅读0次

什么是垃圾?

指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。

java中的变量分为几步数据类型和引用数据类型,基本数据类型(标量)不属于垃圾的范畴,只有引用类型(聚合量)才考虑回收。

notice:

标量:

基础类型和对象的引用可以理解为标量,它们不能被进一步分解。

聚合量:

而能被进一步分解的量就是聚合量,比如:对象。

对象引用:

4.JAVA 对象存储的数据 与 java 的对象和对象引用的区别

标量替换:

对象是聚合量,它又可以被进一步分解成标量,将其成员变量分解为分散的变量,这就叫做标量替换。也就是通过标量替换聚合量。

只有引用类型(聚合量)才考虑回收

这里说的是考虑回收而不是说只要是聚合量就回收,如果一个对象没有发生逃逸,在栈中,那终其一生也只是在stack中存在,不会在heap中创建,所以此时聚合量在随其所在的栈帧的弹栈而消失,不用JVM考虑回收。

运行程序中没有任何指针指向的对象:

指的是存储在heap中的对象实例。

比如一个在栈帧中使用的聚合量,其发生了逃逸,在heap中创建,在这个栈帧中有对于这个聚合量的应用,一旦弹栈,那么heap中的这个对象实例,不会再被引用,此时这个存储在heap中的聚合量就是一个垃圾,需要被JVM当成垃圾回收。

为什么需要GC?

1.对于高级语言来说,一个基本认知是如果不进行垃圾回收,内存迟早都会被消耗完。

2.除了释放没用的对象,垃圾回收也可以清除内存里的记录碎片,以便JVM 将整理出的内存空间分配给新的对象。

3.没有GC就不能保证应用程序的正常进行。因为JAVA在诞生起,就摒弃了C++中直接对内存的操作,如果一直创建对象不回收,必然会报OOM。

早期的垃圾回收

也就是在早期的C/C++时代,垃圾回收基本.上是手工进行的。开发人员可以使用 new关键字进行内存申请,并使用delete关键字进行内存释放。比如以下代码:

MibBridge *pBridge = new cmBaseGroupBridge () ;
//如果注册失败,使用Delete释放该对象所占内存区域
if (pBridge->Register(kDestroy)!= NO_ERROR)
delete pBridge;

现在,除了Java以外,C#、Python、 Ruby等语言都使用了自动垃圾回收的思想,也是未来发展趋势。可以说,这种自动化的内存分配和垃圾回收的方式己经成为现代开发语言必备的标准。

Java垃圾回收机制

自动内存管理

相关文章

  • 垃圾回收相关概述

    什么是垃圾? 指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。 java中的变量分为几步数据类...

  • JVM(九)内存与垃圾回收|垃圾回收基本概念及算法

      本文介绍垃圾回收的基本概念及相关算法。 目录 1 垃圾回收概述  1.1 什么是垃圾(GC)  1.2 为什么...

  • ZGC设计与实现-出版

    目录如下:前言第1章垃圾回收器概述 11.1 垃圾回收算法 21.2 JVM垃圾回收器 21.2.1 串行回收 3...

  • JavaScript中的垃圾回收

    垃圾回收概述 JavaScript具有垃圾自动回收机制 原理是:找出不再使用的变量,释放其内存空间,为此垃圾回收器...

  • 深入理解Java虚拟机之垃圾收集算法篇

    这篇文章将讲解垃圾回收的概念以及对那些区域进行垃圾回收,最后讲解几种常见的垃圾回收算法。 概述 什么叫垃圾收集器?...

  • 深入Java底层:GC

    概述 下文主要分为以下几个大模块进行JVM的GC解读: 垃圾回收之标记算法 垃圾回收之回收算法 堆内存年轻代垃圾收...

  • JVM(六)垃圾回收机制及算法

    1. 垃圾回收概述 什么是垃圾回收?垃圾收集(Garbage Collection,也就是GC)需要完成的三件事件...

  • 深入理解JAVA笔记 - JAVA 垃圾回收

    概述 垃圾回收是JAVA很重要的特性,当内存溢出,内存泄漏时,了解垃圾回收可以有效地排查问题。 什么时候垃圾回收 ...

  • G1垃圾回收器详解

    在前一篇的文章《HotSpot垃圾回收算法概述》里面,对于Serial, Parallel和CMS几种垃圾回收器做...

  • JVM(七)垃圾收集器

    1. 垃圾收集器概述 1.1 垃圾回收器与垃圾回收算法 垃圾回收算法分类两类,第一类算法判断对象生死算法,如引用计...

网友评论

      本文标题:垃圾回收相关概述

      本文链接:https://www.haomeiwen.com/subject/ajvwxltx.html