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

    class Cat {
        public Cat(String name) {
            this.name = name;
        }
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    Cat c1 = new Cat("王磊");
    Cat c2 = new Cat("王磊");
    System.out.println(c1.equals(c2)); // false
    String s1 = new String("老王");
    String s2 = new String("老王");
    System.out.println(s1.equals(s2)); // true
    String x = "string";
    String y = "string";
    String z = new String("string");
    System.out.println(x==y); // true
    System.out.println(x==z); // false
    System.out.println(x.equals(y)); // true
    System.out.println(x.equals(z)); // true

    1.“==”分析:当比较的是基本数据类型时是值比较,引用型比较时是引用比较。

    2.equals()是Object类中的方法,如下:

    public boolean equals(Object obj) {
            return (this == obj);
    }

    可以看到equals本质是引用比较,只是很多类如Integer、String中复写了equals方法,将引用比较转换为了值比较。

     
  • 相关阅读:
    OS快速开发必备
    YYmodel 郭耀源 底层分析
    UITableView使用总结和性能优化
    文件操作
    DOM解析
    SAX解析
    Gallery
    菜单(menu)
    计时器(Chronometer)、标签(TabHost)
    ListActivity
  • 原文地址:https://www.cnblogs.com/wangxiaochao/p/10510904.html
Copyright © 2011-2022 走看看