java中的==和equals()比较

本文详细介绍了Java中对象比较的方法,包括null对象的比较、非null对象的比较以及使用equals方法进行比较的最佳实践。同时,通过具体示例展示了不同类型变量间的比较结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论:

通常情况下,只需关注null的比较
null比较:只能使用==比较,
非null比较:首先验证非null,然后可以使用equals比较

典型的比较方式:

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}
    public static void main(String[] args) {
        String s1="s1";
        String s2=new String("s1");
        System.out.println(s1.equals(s2));//false
        System.out.println(s1==s2);//false
        String s3=null;
        String s4=null;
        System.out.println(s3==s4);//true
        System.out.println(s3.equals(s4));//空指针异常
        float f1=2.1f;
        double d1=2.1;
        System.out.println(f1==d1);//同值的float和double比较为false
        int i1=2;
        double d2=2;
        float f2=2f;
        System.out.println(i1==d2);//同值的int和float,double比较为true
        System.out.println(i1==f2);
        //equals只能比较相同类型的元素,==可以比较不同元素
        //System.out.println(i1.equals(d1));

    }
    public static void main(String[] args) {
        String s1=new String("s1");
        String s2=new String("s1");
        System.out.println(s1.equals(s2));//true
        System.out.println(s1==s2);//false
        Map<String,String> map1=new HashMap<String,String>();
        map1.put("firstKey","firstValue");
        Map<String,String> map2=new HashMap<String,String>();
        map2.put("firstKey","firstValue");
        System.out.println(map1.equals(map2));//true
        System.out.println(map1==map2);//false
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值