首页 > 其他分享 >如何确定垃圾

如何确定垃圾

时间:2023-02-07 15:35:44浏览次数:45  
标签:Java 对象 可回收 计数法 如何 确定 垃圾 可达性 引用

1、引用计数法

在Java中,引用和对象时有关联的。如果要操作对象则必须引用进行,因此,很显然一个简单的方法是通过引用计数来判断一个对象是否可以回收。简单的说,即一个对象如果没有任何与之关联的引用,即引用计数都不为0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。

2、可达性分析

为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。通过一系列的“GC roots”对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对象不可达的。要注意的是,不可达对象不等价于可回收对象,不可达对象变为回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收。

标签:Java,对象,可回收,计数法,如何,确定,垃圾,可达性,引用
From: https://blog.51cto.com/u_11315052/6042170

相关文章

  • vue中如何将 json 格式化展示在页面中?
    在vue中,如果想在页面中展示格式化后的json数据,首先需要先将json字符串转化为json对象,而后通过pre标签插值即可展示。代码示例如下:<scriptsetuplang="ts">......
  • 如何在 C# 项目中链接一个文件夹下的所有文件
    在C#项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接AssemblyInfo.cs文件,这样我们就可以在项目中使用这个文件中的版本号等信息......
  • 我是如何用CAP和BASE两个基础理论卷死其他组员的?
    本文内容整理自博学谷狂野架构师​ CAP定理又被称作布鲁尔定理,是加州大学的计算机科学家布鲁尔在2000年提出的一个猜想。2002年,麻省理工学院的赛斯·吉尔伯特和南......
  • 如何检查文件是否有Python的符号链接
    1、对于python3.4及更高版本,可以使用Path类。frompathlibimportPath#rpdisasymboliclink>>>Path('rdp').is_symlink()True>>>Path('README').is_symlink()False2......
  • python静态web服务器如何实现
    1、编写TCP服务器程序。2、获取浏览器发送的http请求消息数据。3、读取固定的页面数据,将页面数据组装成HTTP响应消息数据并发送给浏览器。4、HTTP响应报文数据发送完成后,关......
  • 【android 】android 如何使用服务器进行版本更新
    今天,简单讲讲android里如何在app内部直接使用服务器进行版本更新。昨天,我讲了如何使用应用市场进行版本更新。但是使用应用市场进行版本更新存在一个问题,就是app无法获取......
  • Linux系统如何进行分区?swap分区是什么?
    分区在操作系统中是非常普遍的概念,而且进行分区有很多的好处,分区可以利于快速查找文件,还可以防止由于系统崩溃导致重要文件一起消失,在降低系统盘的容量的同时保证良好的......
  • 我是如何用CAP和BASE两个基础理论卷死其他组员的?
    本文内容整理自博学谷狂野架构师​ CAP定理又被称作布鲁尔定理,是加州大学的计算机科学家布鲁尔在2000年提出的一个猜想。2002年,麻省理工学院的赛斯·吉尔伯特和南......
  • Spring 如何实现事务管理
    事务管理方式在Spring项目中,我们可以用通过四种方式实现事务管理,分别是编程式事务管理、基于TransactionProxyFactoryBean的声明式事务管理、基于@Transactional的声......
  • 如何去阅读源码,我总结了18条心法
    大家好,我是三友~~这篇文章我准备来聊一聊如何去阅读开源项目的源码。在聊如何去阅读源码之前,先来简单说一下为什么要去阅读源码,大致可分为以下几点原因:最直接的原因,就......