Java:将整数转换为字符串。与== equals运算符进行比较

时间:2014-12-23 07:14:18

标签: java string

public static void main(String[] args) {
    Integer i = new Integer(4);
    System.out.println(i.toString());
    if (i.toString() == i.toString()) {
        System.out.println("true how");
    } else {
        System.out.println("false how");
    }

}

在执行上面的代码时,我得到的输出是"假的"。

你能解释一下Jvm如何对待这个对象吗?

2 个答案:

答案 0 :(得分:2)

您必须使用equals()方法比较对象。

i.toString().equals(i.toString())

答案 1 :(得分:2)

toString()每次都会创建一个新的字符串对象,而您的代码实际上是在检查两个引用是否相同,这种情况绝对不会发生,所以它会运行else的情况。如果你试试

i.toString().equals(i.toString()) 

您将获得所需的输出。