• java 中equals和==的区别


    java9举例代码:

    1   String str1 = "abc";
    2   String str2 = "abc";
    3   String str3 = new String("abc");
    4   String str4 = new String("abc");

          当:str1 == str2    输出:true    当:str1.equals(str2); 输出:true

          当:str1 == str3 输出:false      当:str1.equals(str3); 输出:true

          当:str3 == str4 输出:false      当:str3.equals(str4); 输出:true

        涉及到的细节:

         - 可以通过String中intern方法,字符串对象在常量池中和它相等的字符串的引用

             str3.intern() == str4.intern()  输出:true

             str1.intern().equals(str2.intern())  输出:true

             str1.intern() == str1   输出:true

         - String str = new String("abc");创建了几个对象?

           首先要看常量池里是否有“abc”这个字符串,如果有(String str = "abc";出现时则有),则创建一个,如果没有,则创建两个(一个在常量池,一个在堆中)。

    == 和 equals 区别:

          对于 == :

            作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;

            作用于引用类型的变量,则比较的是所指向的对象的地址;

          对于 equals:  

            equals方法不能作用于基本数据类型的变量;

            如果没有对Object中equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址,反之则比较的是内容;

  • 相关阅读:
    Java8时间处理
    yii2.0上传图片
    将字符串不足长度的填充到指定长度
    通过PHPExcel将Excel表文件中数据导入数据库
    css万能清除原理
    浮动+清除浮动
    DIV滚动条设置添加 CSS滚动条显示与滚动条隐藏
    地图上显示点在点上标注当前点的id
    百度地图点击地址后显示图标,保存到数据库之后,页面显示的是保存的坐标图标
    百度地图API
  • 原文地址:https://www.cnblogs.com/stamp/p/java_base_compare.html
Copyright © 2020-2023  润新知