Java提问

KBK 2019-04-02 02:43:47
请教一下一个基础问题 objects.equals方法是对地址进行比较,与==操作结果应该相同,为什么在这里得到了不同的结果?
...全文
125 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2019-04-02
  • 打赏
  • 举报
回复
public static void main(String[] args){
    String a =new String("a");
        String b =new String("a");
        String c=a;
        System.out.println(System.identityHashCode(a));
        System.out.println(System.identityHashCode(b));
        System.out.println(System.identityHashCode(c));
        System.out.println(Objects.equals(a,b));// 实现代码: return (a==b) || (a!=null && a.equals(b)) -> 结果就是 false || true
        System.out.println(a==b); //比较对象地址
    }
后面调用的String的equals https://www.cnblogs.com/tinyphp/p/3768214.html
qq_39936465 2019-04-02
  • 打赏
  • 举报
回复
String类型是包装类,new的话等于类的实例化,哪怕内容相同地址会不同,“==”比较的是地址,“equals”比较的是值。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧