对象什么时候有资格进行垃圾收集?

2024-05-12

在下面的代码中,考虑到amethod已被调用。最初引用的对象在什么点/线上myObject,有资格进行垃圾收集吗?

class Test {
  private Object classObject;

  public void amethod() {
    Object myObject = new Object();
    classObject = myObject;
    myObject = null;
  }
}

And if classObject or amethod具有 public、protected、default 或 static 的访问修饰符,它会影响对象有资格进行垃圾收集的程度吗?如果是的话,会受到怎样的影响?

  • 我的第一个想法是,当测试对象符合垃圾收集条件时,该对象就有资格进行垃圾收集。
  • 但话又说回来。优化器可能知道在这种情况下永远不会读取 classObjectclassObject = myObject;将被优化掉并且myObject = null;是它有资格进行垃圾收集的点。

该对象不会成为垃圾收集的候选对象,直到all对它的引用将被丢弃。 Java 对象是通过引用分配的,所以当你有

   classObject = myObject;

您为堆上的同一对象分配了另一个引用。所以这一行

   myObject = null;

只删除一个引用。使myObject作为垃圾收集的候选者,你必须有

  classObject = null;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对象什么时候有资格进行垃圾收集? 的相关文章

随机推荐

  • 如何以最佳方式传递元组参数?

    如何以最佳方式传递元组参数 Example def foo Int Int def bar a Int b Int 现在我想传递的输出foo to bar 这可以通过以下方式实现 val fooResult foo bar fooResul
  • 如何在 NodeJS 中允许表单数据

    我最近创建了一个接受文件的 API 我正在尝试使用 Postman 测试 API 如果我使用发出帖子请求x wwww form urlencoded身体类型 一切正常 我得到了所有预期的数据 唯一的问题是它不允许发送文件 如果我使用form
  • 关于文件 file = new File(路径)

    The Java iO 文件 http docs oracle com javase 6 docs api java io File html File 28java lang String 29文档说了以下关于其构造函数的内容 该构造函数
  • xml 拉解析器资产 xml

    如何使用拉解析器解析资产文件夹中的本地 XML 文件 我无法让拉解析器工作 它总是抛出 io 异常 我想我无法获取文件的路径或连接到该文件 mixm 我正在尝试各种方法来从 资产 和 资源 加载本地文件 但要按要求回答您的问题 因为其他人似
  • 在 java 8 中找不到 AnnotationProcessorFactory 类

    我有一个项目是建立在java 1 6 and 现在我将java版本升级到1 8 and构建项目 这里我使用 gradle 来构建项目 这是等级代码 task wsgen dependsOn compileJava doLast ant ta
  • asp.net core 1 appsettings.product.json 不更新连接字符串

    我在生产环境中有一个应用程序 使用在 IIS 上运行的 net core RC1 我重新编写了该应用程序 因为该公司希望将其放在 net core1 上 因为那是正式版本 在我的 net core RC1 应用程序中 我有 config j
  • Nodejs:在哪里或如何编写复杂的业务逻辑?

    最近我接触到了node js 和一些很酷的包 比如express 和jade 我一直有几个问题不断地敲我的门 如果我选择 Node js 来构建我的下一个网站 我将使用 JavaScript 来编写服务器端复杂的逻辑 但我不认为你可以将 J
  • 具有灵活数组成员的结构的大小

    Given struct Foo uint32 t a uint32 t b What is sizeof Foo 它是实现定义的行为还是未定义的行为 C 和 C 的答案是否不同 编译器将忽略灵活数组成员 因为它不存在 C11 6 7 2
  • 找不到模块“@angular/platform-b​​rowser/animations”

    我收到错误 ts 找不到模块 angular platform b rowser animations 我已经安装了以下内容 npm install save Angular Material Angular cdk npm install
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • java设置图像的分辨率和打印尺寸

    我编写了一个程序 生成一个 BufferedImage 以显示在屏幕上 然后打印 图像的一部分包括 1 像素宽的网格线 即 一行为1个像素 行与行之间大约有10个像素 由于屏幕分辨率的原因 图像显示得比这大得多 每行有几个像素 我想将其绘制
  • 检索除指定一列之外的所有 DataFrame [重复]

    这个问题在这里已经有答案了 有没有办法选择 pandas DataFrame 对象中除一列之外的所有列 我已经看到了删除列的方法 但我不想这样做 use drop method df drop column name axis 1
  • 同一页面中多个表单上的 Google 隐形 ReCaptcha - PHP

    我正在我的 php 网站上关注这个 Invisible ReCaptcha 文档 http www pinnacleinternet com installing invisible recaptcha http www pinnaclei
  • 如何等待 WebSocket 就绪状态更改

    我正在尝试实现一个可以回退到轮询的 WebSocket 如果WebSocket连接成功 readyState变为1 但如果失败 readyState是 3 我应该开始轮询 我尝试过这样的事情 var socket new WebSocket
  • 如何从 VS2013 为基于 ADO.Net 的存储库编写单元测试代码

    我在单元测试领域很新 那么请指导我如何在控制器内为基于 ADO Net 的存储库和操作方法编写单元测试 我将使用 VS 自己的单元测试框架 所以请看代码并告诉我哪些类和函数需要经过单元测试 如果有人告诉我哪些区域需要单元测试以及哪些区域不需
  • 作为服务主体运行 azure 逻辑应用/连接器

    是否可以将逻辑应用或连接器作为服务主体运行 特别是在消费计划下 我猜想强制应用程序在通过 powershell 的非消费计划 https github com logicappsio ConsumptionToAppServicePlan可
  • 检查多个变量java中的替换空值

    我试图找到一种简单的方法来在 Java 中的多个变量中执行多个 null 检查 替换 我有一个包含大约 20 个字符串变量的对象 在构造函数中 我想检查是否有任何变量值为空 如果它们为空 我想用空字符串替换它们 我可以执行一系列 if 语句
  • 如何在 Visual Studio Code 中编译和运行 Java 代码

    我下载了 Visual Studio Code 并安装了 Java扩展包 https marketplace visualstudio com items itemName vscjava vscode java pack 由微软 之后我下
  • 如何在 C# WinRT/winmd 中调整图像大小?

    我有一个简单的问题 但到目前为止我还没有找到答案 如何在 C WinRT WinMD 项目中调整 jpeg 图像的大小并将其另存为新的 jpeg 我正在开发 Windows 8 Metro 应用程序 用于从某些网站下载每日图像并将其显示在动
  • 对象什么时候有资格进行垃圾收集?

    在下面的代码中 考虑到amethod已被调用 最初引用的对象在什么点 线上myObject 有资格进行垃圾收集吗 class Test private Object classObject public void amethod Objec