zoukankan      html  css  js  c++  java
  • “==” 与 equals

      这几天做过一些java的面试题,其中涉及的“==” 与 equals之间的问题甚是烦恼,然后只好自己写代码测试,得到一些有用的结论,希望对大家有用

    ==对于基本数据类型,判断值是否相等;对于类类型,判断地址是否相同

    运算符”==”与equals比较对象的区别是什么?
    == :
    基本类型:比较的是值
    引用类型:比较的是地址值
    equals :
    基本类型:比较的是值本身
    引用类型:在不重写的情况下比较的是地址值+@+哈希值

    10    Test t = new Test();
    11 Test s = new Test();
    12 System.out.println(t == s);//false 比较地址
    13 System.out.println(t.equals(s));//false 没有被重写的equals,比较地址
    14 String c = new String();
    15 String d = new String();
    16 
    17 System.out.println(c == d);//false 比较地址
    18 System.out.println(c.equals(d));//true String类的equals被重写,比较值
    equals只重写了String对象的比较值,其他对象比较的是地址
    
    String str1 = "abc";
    String str2 = "abc";
    String str3 = new String("abc");
    System.out.println(str1 == str2);//true 都指向方法区中常量池的值"abc"
    System.out.println(str2 == str3);//false str3在堆内存中存放"abc","abc"取自常量池

    11、以下返回true的表达式有__ac_____。
    A. "briup" == "briup"
    B. "briup" = "briup"
    C. "briup".equals(new String("briup"))
    D. "briup" == new String("briup")

    equals重写:(eclipse自带重写功能,以下不理解也可以)

    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
            Test other = (Test) obj;
        if (age != other.age)
           return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
            return true;
    }    
  • 相关阅读:
    System.ServiceModel.CommunicationException:The underlying connection was closed: The connection was closed unexpectedly
    研究jBPM和NetBPM
    研究:Microsoft Solution Framework
    iOS银联,支付宝,微信,ping++开发文档
    Xampp+Openfire+Spark的简单使用
    ObjectiveC与Swift混编
    网络抓包教程
    iOS版微信开发小结(微信支付,APP跳转微信公众号)
    七牛上传图片问题总结
    2012年之总结
  • 原文地址:https://www.cnblogs.com/wsyblog/p/7294334.html
Copyright © 2011-2022 走看看