String.valueOf() 和 new String() 的区别

use*_*441 6 java string

String.valueOf() 和 new String() 有什么区别?你什么时候会使用一个?

示例 1:

public String fun(){

 int foo = 55;
 return String.valueOf(foo);

}
Run Code Online (Sandbox Code Playgroud)

例子2:

public String fun(){

int foo = 55;
return new String(foo);

}
Run Code Online (Sandbox Code Playgroud)

更新:是的,第二个例子没有像下面其他人指出的那样编译。我没有意识到这一点,因为我一直在使用 new String("something" + foo) 并且它已经起作用了,正如 fastcodejava 所指出的那样。那么,如果我使用 new String("something" + foo) 或 String.valueOf(foo) ,两者之间有区别吗?

fas*_*ava 1

第二个代码甚至无法编译。但如果你这样做了return new String("" + foo);,那就会了。之后他们就几乎一样了。

  • 这是一个非常糟糕的 Java 建议 - 它创建了 2 个不必要的对象 (2认同)