国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java的equals和==的比較示例

2019-11-26 15:32:53
字體:
來源:轉載
供稿:網友

先看例子:

復制代碼 代碼如下:

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方法實際上一開始就調用了==判別式,然后再判斷其進一步值是否正確

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 迁西县| 榆社县| 常德市| 宁陕县| 龙州县| 开原市| 双鸭山市| 峨边| 三明市| 光泽县| 温泉县| 九龙坡区| 甘孜| 台前县| 河曲县| 安西县| 隆安县| 丹阳市| 乃东县| 咸阳市| 上饶市| 呼伦贝尔市| 三门县| 夏河县| 磴口县| 胶南市| 夏津县| 瓮安县| 高邑县| 哈密市| 张家川| 兴安盟| 达尔| 尼木县| 昭觉县| 博白县| 图们市| 兰州市| 沿河| 炉霍县| 黄龙县|