zoukankan      html  css  js  c++  java
  • ==和equals的区别

    一、理解”==“的含义

    在java中,主要有两个作用。

    1、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。

    2、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。

    OK。

    注意 你会发现,引用的例子中,使用的是User对象,而不是String

    String

    1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。

      “==”比较两个变量本身的地址值,即两个对象在内存中的首地址。

      “equals()”比较字符串中所包含的内容是否相同。

    比如:

    String s1,s2,s3 = "abc", s4 ="abc" ;

    s1 = new String("abc");

    s2 = new String("abc");

    那么:

    s1==s2 是 false      //两个变量的内存地址不一样,也就是说它们指向的对象不 一样,故不相等。

    s1.equals(s2) 是 true     //两个变量的所包含的内容是abc,故相等。

    注意(1):

    如果:          StringBuffer s1 = new StringBuffer("a");
                       StringBuffer s2 = new StringBuffer("a");
    结果:          s1.equals(s2) //是false

    解释:StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,而Object类中的equals方法是用来比较“地址”的,所以等于false.

  • 相关阅读:
    收集 关于php的博文
    hdwiki中插件开发指南
    MySQL中“”的坑
    SpringBoot生成验证码
    Spring中的循环依赖问题
    深入理解AQS(抽象队列同步器)
    JUC下线程的三种等待唤醒机制
    关于List集合的去重
    MySQL:去除 字符串
    MySQL:Can't connect to MySQL server on 'localhost'(10061)
  • 原文地址:https://www.cnblogs.com/JonaLin/p/13687635.html
Copyright © 2011-2022 走看看