在java中,每一個對象都有一個地址空間,在這空間保存著這個對象的值。 equals 比較的是值,==比較的地址以及值。
01: public class StringExample
02: {
03: public static void main (String args[])
04: {
05: String s0 = "06: String s1 = new String ("Programming");
07: String s2 = "Program" + "ming";
08:
09: System.out.println("s0.equals(s1): " + (s0.equals(s1)));
10: System.out.println("s0.equals(s2): " + (s0.equals(s2)));
11: System.out.println("s0 == s1: " + (s0 == s1));
12: System.out.println("s0 == s2: " + (s0 == s2));
13: }}
這個例子包含了3 個String 型變量,其中兩個被賦值以常量表達式“Programming”;另一個被賦值以一個新建的值為“Programming”的String 類的實例。使用equals(...)方法和“= =”運算符進行比較產生了下列結果:
s0。equals(s1): true
s0。equals(s2): true
s0 == s1: false
s0 == s2: true
String.equals()方法比較的是字符串的內容,使用equals(...)方法會對字符串中的所有字符一個接一個地進行比較,如果完全相等那么返回true。 在這種情況下全部字符串都是相同的,所以當字符串s0 與s1 或s2 比較時我們得到的返回值均為true 。運算符“==”比較的是String 實例的引用。
新聞熱點
疑難解答