linsea 2008-10-27 19:22
浏览 450
已采纳

一个含static字段的类的对象没有被引用是否会被GC回收?

[size=large]看到项目中有这里的代码,大家看下,一个类里面有一个static字段的变量,当new一个对象后,没有被引用,是否会被垃圾回收器回收?
比如,代码如下:[/size][code="java"]public class Sta {
private static int s = 0;

public Sta(int i) {
    setS(i);
}
public static int getS() {
    return s;
}
public static void setS(int s) {
    Sta.s = s;
}

}[/code]

[code="java"]public class StaDriver {

public static void main(String[] args) {

    new Sta(2);
    System.out.println(Sta.getS());
    System.gc();

    System.out.println(Sta.getS());//如果被回收,值应该是0,否则为2,大家看呢?     
}

}[/code]
[size=large]这里不讨论System.gc()执不执行的问题,这里主要强调理论上,一个含static字段的对象没有被引用后会不会被垃圾回收!!![/size]

  • 写回答

2条回答 默认 最新

  • 统一方便面 2008-10-28 14:39
    关注

    会被垃圾回收,值为2

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程