zoukankan      html  css  js  c++  java
  • String 字符串的==和eqauls区别

    1.对于基本类型来说,==比较的是数据的值,equals方法也是数据的值;

       对于引用类型来说,==比较的是引用的地址,equals方法比较的是对象的内容。

    2.String是引用类型,用“=”创建字符串时,字符串保存在堆里面的字符串常量池中,而new String()则是保存在堆的另一个空间,所以即使是相同内容的字符串,==结果也不一定为

       true,因为==比较的是地址。

    public class Test3 {
        public static void main(String[] args) {
            String str1="Shane";
            String str2="Shane";
            String str3=new String("Shane");
            System.out.println(str1==str2);//true
            System.out.println(str1==str3);//false
            System.out.println(str2==str3);//false
            System.out.println(str1.equals(str2));//true
            System.out.println(str3.equals(str2));//true
            System.out.println(str1.equals(str3));//true
            System.out.println("Shane".equals(str1));//true
        }
    }

    3.还有一点需要注意的是,我们用equals方法时,如果有常量,我们尽量将常量放在左边,变量放在右边。因为如果变量=null,且变量在.左边,就会报空指针异常。

  • 相关阅读:
    [CF598E] Chocolate Bar
    [CF629D] Babaei and Birthday Cake
    [CF961D] Pair Of Lines
    [CF468B] Two Sets
    [CF767C] Garland
    [CF864E] Fire
    [CF578C] Weakness and Poorness
    [CF555B] Case of Fugitive
    [CF118E] Bertown roads
    [CF1301D] Time to Run
  • 原文地址:https://www.cnblogs.com/iceywu/p/11979381.html
Copyright © 2011-2022 走看看