java中的==和equals()比较

来源:互联网 发布:北外网院网络教学平台 编辑:程序博客网 时间:2024/06/05 09:27

结论:

通常情况下,只需关注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    }
0 0