您能帮我吗?
如果正在这样做,我将尝试在String Literal上应用toString方法,那么String原本会转换为String对象吗?如果将其转换为String对象,则会在堆或String常量池中分配内存吗?
这是我正在尝试的代码段:
String str = "Welcome";
System.out.println(str.toString());
我无法弄清楚str.toString()
该语句在内部发生了什么。
答案 0 :(得分:4)
如果我们使用source code方法的toString()
:
/**
* This object (which is already a string!) is itself returned.
*
* @return the string itself.
*/
public String toString() {
return this;
}
所以toString()
方法什么也不做,只返回完全相同的String
答案 1 :(得分:1)
这非常简单,String类从Object覆盖toString()
并返回this
。
实施:
public String toString() {
return this;
}
答案 2 :(得分:0)
str
已经是String
,所以toString()
除了返回str
之外不会有其他结果。
答案 3 :(得分:0)
在这种情况下,toString是冗余代码,因为它对str没有影响