zoukankan      html  css  js  c++  java
  • Java String比较

    代码

    @Slf4j
    public class StringCompareDemo {
        public static void compare() {
    
            String a = "1";
            String b = "1";
            log.info("
    String a = "1";
    " +
                    "String b = "1";
    " +
                    "a == b ? {}", a == b); //true
    
            String c = new String("2");
            String d = new String("2");
            log.info("
    String c = new String("2");
    " +
                    "String d = new String("2");" +
                    "c == d ? {}", c == d); //false
    
            String e = new String("3").intern();
            String f = new String("3").intern();
            log.info("
    String e = new String("3").intern();
    " +
                    "String f = new String("3").intern();
    " +
                    "e == f ? {}", e == f); //true
    
            String g = new String("4");
            String h = new String("4");
            log.info("
    String g = new String("4");
    " +
                    "String h = new String("4");
    " +
                    "g equals h ? {}", g.equals(h)); //true
        }
    }

    执行结果

    String a = "1";
    String b = "1";
    a == b ? true
    ----
    String c = new String("2");
    String d = new String("2");c == d ? false
    
    -----
    String e = new String("3").intern();
    String f = new String("3").intern();
    e == f ? true
    ---
    
    
    String g = new String("4");
    String h = new String("4");
    g equals h ? true

    分析

    第一个相等,是因为 Java 的字符串驻留机制,直接使用双引号声明出来的两个 String 对象指向常量池中的相同字符串。

    第二个不相等,是因为new 出来的两个 String 是不同对象,引用当然不同,所以得到 false 的结果。

    第三个相等,是因为使用 String 提供的 intern 方法也会走常量池机制,所以同样能得到 true。

    第四个相等,是因为string重写了equals,equals内部是比较的是字符串的值。

  • 相关阅读:
    sgg_3_hibernate详解
    sgg_2_hibernate开发步骤
    sgg_1_hibernate概述
    cookie
    exchange 普通用户可以创建通讯组
    DC 维护常用工具命令DCdiag
    cp 复制不覆盖
    powershell 结果输出显示为……
    获得用户完整的autodiscover配置文件
    【转】outlook 2016 配置自动发现
  • 原文地址:https://www.cnblogs.com/Brake/p/12716574.html
Copyright © 2011-2022 走看看