zoukankan      html  css  js  c++  java
  • String字符串相等判断

    == :比较的是内存地址值
    equals: 比较的是值,对象的equals()可以被重写

    java中字符串的比较:==

    String a="abc";
    String b="abc"
    

    那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存 一份,所以a和b指向的是同一个对象;

    String a=new String("abc"); 
    String b=new String("abc");
    

    那么a==b将返回false,此时a和b指向不同的对象。

    用equals方法比较的是字符串的内容是否相同

    String a=new String("abc"); 
    String b=new String("abc");
     a.equals(b);
    

    将返回true。

    如果是
    String s1 = “abc”;
    String s2 = “a”;
    String s3 = “bc”;
    String s4 = s2 + s3;
    System.out.println(s1 == s4);
    A:false,因为s2+s3实际上是使用StringBuilder.append来完成,会生成不同的对象


    String s1 = “abc”;
    final String s2 = “a”;
    final String s3 = “bc”;
    String s4 = s2 + s3;
    System.out.println(s1 == s4);
    A:true,因为final变量在编译后会直接替换成对应的值,所以实际上等于s4=”a”+”bc”,而这种情况下,编译器会直接合并为s4=”abc”,所以最终s1==s4。

  • 相关阅读:
    CCNP-----企业网三层架构——BCMSN
    Redis 的 GEO 特性将在 Redis 3.2 版本释出
    CentOS6.5上源码安装MongoDB3.2.1
    beanstalkd
    php7---redis
    MongoDB学习笔记(入门)
    MongoDB学习笔记(数据操作)
    MongoDB学习笔记(索引)
    CentOS 安装MongoDB
    爬虫----Web_WeChat
  • 原文地址:https://www.cnblogs.com/seasail/p/12179344.html
Copyright © 2011-2022 走看看