gpt4 book ai didi

java - Java 中的字符串文字与字符串对象

转载 作者:搜寻专家 更新时间:2023-11-01 04:00:47 25 4
gpt4 key购买 nike

在 java 中,String 可以通过下面给出的两种方式创建

  1. String foo="测试";
  2. String fooobj=new String("Test");

到处都提到这两种创建字符串的方法之间的区别。我想更多地了解什么是合适的场景,我们应该去哪里

  String foo="Test";

什么时候去

 String fooobj=new String("Test");  ?

最佳答案

简短的回答:如果您有任何疑问,您不需要 new String("literal here")。如果您需要它,您会知道您需要它,以及为什么。

长答案:

本质上,您唯一想要使用 new String("literal here") 的情况是您要确保生成的字符串对象不是 == 任何其他对象字符串对象。文字得到 interned自动地;通过 new String("literal here") 创建的字符串不是。

那你为什么想要那个?答案是你几乎永远不会,因为 String 实例是不可变的,所以你不关心你是否正在与其他东西共享一个 String 实例。我能想象的唯一场景是,如果您有一个接受 String 的 API,并且您想要一个不同于 null 的标志值,并且您想要检查通过 == 标记/标记值,如下所示:

public static final String MARKER = new String("Marker");
public void someFictionalMethod(String arg) {
if (arg == MARKER) {
// Take action on the marker
}
else {
// Take action on the string
}
}

...即便如此,我还是会觉得它有点可疑,并会探索其他方法来做到这一点。

关于java - Java 中的字符串文字与字符串对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223763/

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