真实没有区别.
因为你的两个函数都有返回类型String,所以创建一个新的String()只是一个开销.它就像将字符串再次包装到一个字符串中并在池中创建一个新的字符串,实际上没有任何优势.
但是原始类型和String对象的一个主要区别是类String总是创建新的字符串.
String str = "my string";
如果“我的字符串”已存在于字符串池中.那么它将使用相同的字符串而不是创建新的字符串.
这就是为什么,
String str1= "my string";
String str2 ="my string";
str1==str2? --> will return true
上面的结果是正确的,因为使用了来自池的相同String对象.
但是当你这样做的时候
String str = new String("new string");
始终,创建一个新的String对象,而不管池中是否存在相同的对象.
所以比较:
String str1 = new String("new string");
String str2 = new String("new string");
str1==str2 --> will return false