nik*_*ik7 3 java string declaration
可能的重复:
Java字符串声明
Java字符串:"String s = new String("silly");"
Java中表达式"new String(...)"的用途是什么?
什么是区别
String a = new String("SomeValue");
Run Code Online (Sandbox Code Playgroud)
和
String a = "SomeValue";
Run Code Online (Sandbox Code Playgroud)
有什么不同,哪一个更好,为什么?
谢谢.
除非您有不寻常的特定需求和用例,否则请始终使用第二个版本,而不是新版本.
编辑以回应@Ynwa
如果你特别需要一个你知道的String是唯一的,并且你将与==(这也是不寻常的)进行比较,那么使用第一种情况.例如,你有一些字符串队列,你需要一个特定的字符串来表示"全部完成".现在,可以想象,你可以使用的字符亚美尼亚空或一些怪异的字符串,但也许null是合法的,你的逻辑,如果你的软件最终在亚美尼亚被使用呢?干净的方式是
public final static String TERMINATOR = new String("Terminator"); // actual text doesn't matter ...
// then, some loop taking from the Queue
while (keepGoing) {
String s = myQueue.take();
if (s == TERMINATOR)
keepGoing = false;
else
// normal processing of s
}
Run Code Online (Sandbox Code Playgroud)
如果客户端将"终结者"放在队列中,它将被处理.所以你不要阻止他们使用"终结者".但是如果客户端将ThatQueueClass.TERMINATOR放到队列中,它将被关闭.
| 归档时间: |
|
| 查看次数: |
20274 次 |
| 最近记录: |