创建单独常数文件的总体优势(在内存管理等方面)是什么,例如"常数"下面的"常数",直接在Java文件中(例如stringVar.equals("name")
)写作?/p>
public final class Constants {
// Hide the constructor
private Constants(){}
public static String NAME="name";
}
我知道,即使我们写了2次使用"名称"(如下),在字符串池中只能创建一个字面的?
stringVar1.equals("name")
和stringVar2.equals("name")
一个原因是重复使用它(因此防止错误的错误)。
如果您使用的是IDE,则比普通字符串搜索更容易以更不明显的方式执行使用。
在评论中已经指出的另一个是记忆,但是如我所见,以上两个原因更为重要 - 通常用法。我的不好。看起来内存与它无关 - 至少在静态最终场上。
这与效率无关;这是关于可维护性的。
常数两者都在一个位置定义了 "name"
,并将常数名称(您选择NAME
)关联。
在您的示例中,常量名称不会告诉我们任何事情。但这可能是public static String FIRST_NAME_FIELD = "name"
。然后,无论是在常数类和每个用法中,字符串 "name"
的含义都更加清楚。
,当然,如果您需要将"name"
更改为"first_name"
,请更容易。
性能明智,java倾向于在字符串池中重复使用字符串。
常数通常会在您知道该值不会改变或不得更改其他任何人时使用。
对于一个常数,您必须在变量声明中添加 final
:
public static final String NAME="name";
常数与更好的编码,组织和重复使用更相关。