1. 程式人生 > >==與equals各種比較

==與equals各種比較

package com.xxx.xx;
/*相等比較===:比較記憶體地址;equals比較值(equals相等hecode也相等)
 * 
 * 
 * */
public class Equal {


public String strM;
public int strN;
public Equal(String strM, int strN) {
this.strM = strM;
this.strN = strN;
}
public static void main(String[] args){
String str1 = "hode";
String str2 = "hode";
String str3 = new String("hode");
String str4 = new String("hode");

Equal el1 = new Equal("hode",1);
Equal el2 = new Equal("hode",1);
System.out.println("**********************str1與str2********************************");
System.out.println("(str1==str2) ="+(str1==str2));//true
System.out.println("str1.equals(str2)="+str1.equals(str2));//true
System.out.println("**********************str1與str3********************************");
System.out.println("(str3==str4) ="+(str3==str4));//false
System.out.println("str3.equals(str4)="+str3.equals(str4));//true
System.out.println("**********************str3與str4********************************");
System.out.println("(str1==str3) ="+(str1==str3));//false
System.out.println("str1.equals(str3)="+str1.equals(str3));//true

System.out.println("**********************el1與sel2********************************");
System.out.println("(el1==el2) ="+(el1==el2));//false
System.out.println("el1.equals(el2)="+el1.equals(el2));//false
String s1  = "hello";  
        String s2 = "world";  
        String s3 = "helloworld";  
        System.out.println("**********************s1==s2+s3拼接********************************");
        System.out.println("s3==s1+s2="+s3==s1+s2);//false(s1和s2是兩個變數是先開空間再拼接在一起,所以不和s3地址值一直)  
        System.out.println("**********************s1equals(s2+s3)拼接********************************");
        System.out.println("s3.equals(s1+s2)="+s3.equals(s1+s2));//true 
        System.out.println("******************************************************");


        System.out.println(s3=="hello"+"world");//true(因為"hello"和"world"是常量,所以先拼接再去找有沒有這個拼接後的常量,發現有,s3所以相等)  
        System.out.println("s3.equals('hello'+'world')="+s3.equals("hello"+"world"));//true  
}
}