String、“==”与“equals”

针对“==”与equals,在不同数据类型下的作用。

(注:这个CSDN的文本编辑器,两个双等是标注其中间的内容,并添加深黄色的文字背景,所以,我就将 “==” 用汉字“双等”代替了。)

Java中,数据类型最初只有基本数据类型和一个String的引用类型。因为是引用,所以如果你的String是按照引用创建的,那么,你一般用来比较的引用(String a 就是一个完整的引用),引用存放的是对象的地址,所以,当你用 双等 比较的话,比较的是引用内存放的地址值,地址不同的话,比较出来的是false。

而一般的被使用 双等 的话,都是比较申明的变量的值。这就是比较容易搞混乱的地方。

比较的思路(流程图):
在这里插入图片描述

另附代码自己调试运行看,我将 双等 和equals
都分类的写了例子进行比较。

public class dome1 {
    public static void main(String[] args) {
        //当作引用对象
        String a = new String("a");
        String b = new String("a");
        String s = a;

        //当作基本类型
        String c = "a";
        String d = "a";
        String e = "c";

        //引用对象
        System.out.println("引用对象类型(先是“==”后是“equals”):");
        System.out.println(a==b);//地址不同的两个引用(即两个不同的对象)用“==”
        System.out.println(a==s);//两个指向相同对象的引用用“==”
        System.out.println(a.equals(b));//地址不同的两个引用(即两个不同的对象)用“equals”
        System.out.println(a.equals(s));//两个指向相同对象的引用用“equals”

        //基本类型
        System.out.println(c==d);//基本类型值相同用“==”
        System.out.println(c==e);//基本类型值不同用“==”

        System.out.println(c.equals(d));//基本类型值相同用“equals”
        System.out.println(c.equals(e));//基本类型值不同用“equals”



        /*
        * 对于 “==” 和 “equals”,要分为基本类型和引用类型
        * 基本类型:
        *         对于equals方法,其实只有String的基本类型才能调用,其它的如int、double、float都不行。
        *         对于“==”,直接比较值是否相等。
        * 引用类型:
        *         直接说的是String类型的引用。对于“==”,直接比较引用存放的地址,相同为true,不同为false,并不关心值如何(当然,如果地址相同的话,那值也是一样的了)。
        *         对于“equals”,直接比较值是否相同,并不关心值的情况。
        *
        * */
    }
}

结果:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值