gpt4 book ai didi

java - 静态与非静态

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:12 25 4
gpt4 key购买 nike

直到几周前,我还以为我了解何时将字段和方法设置为staticnon-static。例如,当一个字段(比如另一个类的对象)对于该类的任意数量的对象是唯一的时,应该将其设置为 static

但几周前我读到了有关 JVM 垃圾回收的内容。

我知道 static 字段永远不会被垃圾回收并一直保留在内存中,除非类加载器本身被垃圾回收。

但如果我不使该字段静态,至少它会被垃圾收集。

因此,似乎在使字段/方法静态与否之间存在非常细的界限

任何人都可以向我解释一下决定中的这条细线,以便我的申请更有效率。

最佳答案

它可能很薄,但有非常明显的区别。当一个字段与类的任何实例完全不相关时,您就可以将它声明为静态的。

静态字段的一个简单用例是使用 final 关键字声明常量,例如:

public static final int MAX_ALLOWED = 10;

方法也是如此。当方法不依赖于类的实例或类的状态时,您将方法声明为静态方法。这就是静态方法不能使用类的实例成员的原因。

关于java - 静态与非静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com