java中的字符串文字与常数文件



创建单独常数文件的总体优势(在内存管理等方面)是什么,例如"常数"下面的"常数",直接在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";

常数与更好的编码,组织和重复使用更相关。

最新更新