在 Java 中创建字符串:“String s = new String("silly")”的情况
在 Java 中创建字符串时,了解 String 类的行为至关重要。与 Java 中的许多其他类不同,字符串文字会自动创建 String 对象,而不需要 new 关键字。但是,明确不鼓励使用 new 运算符创建新的 String 对象,因为它可能会导致不必要的内存消耗。
为了说明这一点,请考虑以下代码:
String s = "No longer silly";
在此在这种情况下,文字“不再愚蠢”被直接分配给 s 变量,从而创建单个 String 对象。但是,以下代码片段:
String s = new String("silly");
创建了一个不必要的附加 String 对象。为了避免这种情况,建议尽可能使用文字赋值,如第一个示例所示。
但是,在某些情况下可能需要动态创建 String 对象。例如,考虑以下类:
public final class CaseInsensitiveString { private String s; public CaseInsensitiveString(String s) { if (s == null) { throw new NullPointerException(); } this.s = s; } }
在这种情况下:
以上是为什么创建`CaseInsensitiveString`对象时需要使用`new`而不是`String`对象?的详细内容。更多信息请关注PHP中文网其他相关文章!