美文网首页
java中的==和equals方法

java中的==和equals方法

作者: scoot929 | 来源:发表于2017-09-11 16:58 被阅读8次

    这东西记了又忘,忘了又记
    equals本来实现就是用的==,但是string比较特殊,有一个常量池
    1.string类型
    ''

    String s1 = new String("abc");
    String s2 = new String("abc");
    String s3 = "abc", s4 ="abc" ;
    
    System.out.println(s1.equals(s2));//true
    System.out.println(s3.equals(s4));//true
    System.out.println(s1.equals(s3));//true
    
    System.out.println(s1==s2);//false
    System.out.println(s3==s4);//true,因为常量池的原因
    

    ''
    string的equals方法重写了的,只要内容相同就返回true
    ==则是返回地址,如果是new的则是不同的地址,就会返回false

    2.基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的,没有常量池这个东西

    在对象相同的情况下内容相同则可以返回true,其他情况返回false

    相关文章

      网友评论

          本文标题:java中的==和equals方法

          本文链接:https://www.haomeiwen.com/subject/mtyfsxtx.html