2016-01-20 116 views
0

为什么结果是错误的? 有人可以解释吗?字符串串联和比较使用==

public class StringTest1 { 
    public static void main(String[] args) { 
    String a="a"; 
    String b=a+"b"; 
    String c="ab"; 
    System.out.println(b==c); 
    } 
} 
+0

'串了'是一个字符串的引用,所以当你做'b == C'你比较字符串引用和这些引用是不一样的,即使引用的对象包含相同的数据。 –

+0

感谢您的回复。 – Monika

+0

这是一个使用Java的相关常见问题我推荐你阅读http://stackoverflow.com/questions/1700081/why-does-128-128-return-false-but-127-127-return-true-in-此代码 –

回答

1

因为它们不指向内存中的同一个对象。

==用于比较基本类型或对象引用。

你想要做什么,是比较它们的值,为此您将需要使用equals(Object o)equalsIgnoreCase(Object o)方法(S)