• 关于Java中equal 和 == 的区别


      在对Java开发还不熟练的时候,往往很多人都喜欢用==去比较两个对象是否相等,有时候就会出现很奇葩的问题。

      其实这类问题并不是奇葩问题,只是我们不够细心而已,在Java中“==”比较两个变量本身的值,即两个对象在内存中的首地址,而“equals()”比较字符串中所包含的内容是否相同,假如我们有两个String 对象:

    String str1 = new String ("1号");  

    String str2 = new String("1号");

    System.out.println(str1==str2);

    上面的三条语句将打出false。原因就是str1和str2不是同一个对象,他们指向的内存地址是不同的。

    String str1 = new String ("1号");  

    String str2 = new String("1号");

    System.out.println(str1.equals(str2));

    上面的三条语句将打出true。虽然str1和str2不是同一个对象,但是他们的内容是是相同的,都是“1号”,因此返回true.

    String str1 = "1号";
    String str2 = "1号";
    System.out.println(str1 == str2);

    上面的三条语句将打出true。原因是str1和str2同时引用了“1号”这个字符常量,也就是str1引用了“1号”,str2引用了“1号”,因此str1和str2的内存地址都是“1号”所对应的内存地址,至于下面的:

    String str1 = "1号"; 
    String str2 = "1号";

    System.out.println(str1.equals(str2));

    返回的是true。

  • 相关阅读:
    tomcat启动超时
    sqlserver存储过程及mybatis调用——待续
    linux各种顔色代表
    linux ngix安装
    vue 报错解决:TypeError: Cannot read property '_t' of undefined"
    给iview项目加一个i18n国际化翻译
    初探iview
    vue-eslint配置文件
    js中通过Object.prototype.toString方法----精确判断对象的类型
    判断是对象还是数组的方法
  • 原文地址:https://www.cnblogs.com/divenswu/p/3487935.html
Copyright © 2020-2023  润新知