'的用途是什么;新';Java中字符串的运算符?
关于在java语句中使用'的用途是什么;新';Java中字符串的运算符?,java,return,return-value,Java,Return,Return Value,关于在java语句中使用new,我有一个非常基本的问题。例如,最末尾的return子句使用new表示String。为什么需要在此处创建String?在什么样的情况下人们会选择使用new public class A extends java.lang.Object { public int number; public String toString() { return new String("Value : " + number); } }
new
,我有一个非常基本的问题。例如,最末尾的return子句使用new
表示String
。为什么需要在此处创建String
?在什么样的情况下人们会选择使用new
public class A extends java.lang.Object {
public int number;
public String toString() {
return new String("Value : " + number);
}
}
新字符串(“值:+number)
是多余的。
您试图通过复制现有字符串来实例化一个新的字符串对象。以这种方式构造新的字符串对象很少是必要的,如果这样做足够频繁,可能会导致性能问题。 这就足够了:
public class A extends java.lang.Object {
public int number;
public String toString() {
return "Value : " + number;
}
}
在任何情况下,由于
String
都是不可变的,因此显式创建字符串的副本没有任何意义,除非您确实需要来自Javadoc的关于以下内容的副本:
初始化新创建的字符串对象,使其表示与参数相同的字符序列;换句话说,新创建的字符串是参数字符串的副本。除非需要原始的显式副本,否则不需要使用此构造函数,因为字符串是不可变的。
表达式“Value:”+number
已作为新的字符串计算,因此返回新字符串(“Value:”+number)
相当于
String tmp = "Value : " + number;
return new String(tmp);
您可以看到它创建了一个无用的副本。和的可能副本