1. 程式人生 > >java中equals與==的使用

java中equals與==的使用

 

   下面用個小例子記錄一下

    

package lianxi1;

public class lianxi1 {

    public static void main(String[] args) {

            String s1 = "chaoren";
            String s2 = "chaoren";
            String s3 = new String("chaoren");

            
                System.out.println(s1 == s2);
         
                System.out.println(s1 
== s3); System.out.println(s1.equals(s3)); } }

對應的結果是
true
false
true

   “==”比較的是2個數據引用的是否是同一位置,equals比較的是內容是否一樣。

    這裡有一點需要了解在Object中的基類中定義了一個equals的方法,這個方法的初始行為是比較物件的記憶體地 址,

    但在一些類庫當中這個方法被覆蓋掉了,如String,Integer,Date在這些類當中equals有其自身的實現,而不再是比較類在堆記憶體中的存放地址了。

    在以後熟悉做專案時候,你會發現只要是自己的生成的實體類中都會重寫equals方法。

         這裡的s2和s1引用的同一個位置,所以比較為true。

    s3是新生成的一個物件,只能在equals的情況下才為true。