gpt4 book ai didi

java - 为什么要声明常量,是否有必要将它们设为静态?

转载 作者:行者123 更新时间:2023-12-01 07:00:30 25 4
gpt4 key购买 nike

我知道常量是那些值不能改变的变量,但是如果程序的任何部分都没有改变它们的值,它们是否仍然需要声明final ?而且似乎它们必须是静态的。这是为什么?

最佳答案

您实际上是同时提出几个问题,而我正试图回答这些问题。

为什么要使用常量?

常量用于避免 magic numbers/strings在你的代码中。如果您有一个字符串在您的代码中多次出现,那么一旦您必须更改该字符串,您只需更改常量定义,而不是代码中出现的每个字符串。此外,如果一个常量只使用一次,它通常是一件好事,因为它具有更好的可见性。
final关键词。

它的目的(至少在这种情况下)是双重的。一种是使程序员无法更改该值。你可能忘记了它是一个常数。另一种是告诉编译器该值在运行时不能改变。这可用于创建优化的字节码(例如,可以删除常量,并且编译器将每次出现都替换为其值)。
static关键词。

在 Java 中,一切都是类。并且每个类可以有多个实例(对象)。如果您不将常量标记为 static那么每个对象都有“自己的常量”。由于您不希望将其标记为静态是有意义的。静态字段(或方法)确实每个类只存在一次(而不是类的每个对象一次)。

关于java - 为什么要声明常量,是否有必要将它们设为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21780195/

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