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如何对待这个对象吗?
答案 0 :(得分:2)
您必须使用equals()方法比较对象。
i.toString().equals(i.toString())
答案 1 :(得分:2)
toString()每次都会创建一个新的字符串对象,而您的代码实际上是在检查两个引用是否相同,这种情况绝对不会发生,所以它会运行else的情况。如果你试试
i.toString().equals(i.toString())
您将获得所需的输出。