程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java的equals和==的比擬示例

java的equals和==的比擬示例

編輯:關於JAVA

java的equals和==的比擬示例。本站提示廣大學習愛好者:(java的equals和==的比擬示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java的equals和==的比擬示例正文


先看例子:

package com.amos;
/**
 * @ClassName: EqualTest
 * @Description:Java中的equal和==的比擬
 * @author: amosli
 */
public class EqualTest {
    public static void main(String[] args) {
        int a = 1;
        float b = 1.0f;
        System.out.println(a == b);// true
        String c = new String("hi_amos");
        String d = new String("hi_amos");
        System.out.println(c == d);// false
        System.out.println(c.equals(d));// true
    }
}

Java中斷定兩個變量能否相等重要有兩種判方法:一種是應用==運算符,另外一種是應用equals辦法來斷定二者能否雷同.

1).當應用==來斷定兩個變量能否相等時,假如兩個變量是根本類型變量,且都是數值類型,不請求數據類型嚴厲雷同,只需兩個變量的值相等,那末將前往true.

2).假如關於兩個援用類型變量,它們必需指向一個對象時,==斷定才會前往true.==弗成用於比擬類型上沒有父子關系的兩個對象.

如上可以說明異樣一new String時,==斷定二者能否雷同前往的是false,而equals前往的是true.

equals辦法針對的String類,檢查其源碼,可以發明其實equals只能算是==的一種特例.以下面源碼所示:


public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String) anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                            return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

equals辦法現實上一開端就挪用了==辨別式,然後再斷定其進一步值能否准確

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved