1. 程式人生 > >==和equals之間的區別:

==和equals之間的區別:

一、==和equals之間的區別:

  1.==:如果比較的是基本資料型別,那麼比較的是值,如果比較的是引用資料型別,則比較的是地址。

 2.equals:預設情況下比較的是兩個物件的記憶體地址,但是當兩個記憶體地址相同的情況下按照字串中的字元序列來比較兩個物件的內容,如果兩個物件的內地完全相等時沒返回的是true,equal預設比較的記憶體地址,當記憶體地址不同時,再比較成員變數的值。

例如 

           public class TestString {

  1.   public static void main(String[] args) {
  2.   String s1 = "Monday";
  3.   String s2 = new String("Monday");
  4.   s2 = s2.intern();
  5.   if (s1 == s2){
  6.   System.out.println( "s1 == s2");
  7.   } else{
  8.   System.out.println( "s1 != s2");
  9.   }
  10.   if (s1.equals(s2)) {
  11.   System.out.println( "s1 equals s2");
  12.   } else{
  13.   System.out.println( "s1 not equals s2");}
  14.   }
  15.   }
這次加入:s2 = s2.intern();