如果我们尝试将toString应用于String Literal会发生什么?

时间:2018-09-04 17:54:16

标签: java

您能帮我吗?

如果正在这样做,我将尝试在String Literal上应用toString方法,那么String原本会转换为String对象吗?如果将其转换为String对象,则会在堆或String常量池中分配内存吗?

这是我正在尝试的代码段:

String str = "Welcome";     
System.out.println(str.toString());

我无法弄清楚str.toString()该语句在内部发生了什么。

4 个答案:

答案 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没有影响