String字符串相等判斷

== :比較的是內(nèi)存地址值

equals: 比較的是值,對象的equals()可以被重寫

-----------------------------------------------------------

java中字符串的比較:==

我們經(jīng)常習(xí)慣性的寫上if(str1==str2),這種寫法在java中可能會帶來問題

String a="abc";

String b="abc"

那么a==b將返回true。因?yàn)樵趈ava中字符串的值是不可改變的,相同的字符串在內(nèi)存中只會存一份,所以a和b指向的是同一個對象;

-----------------------------------------------------------

String a=new String("abc");

String b=new String("abc");

那么a==b將返回false,此時a和b指向不同的對象。

-----------------------------------------------------------

用equals方法比較的是字符串的內(nèi)容是否相同

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,因?yàn)閟2+s3實(shí)際上是使用StringBuilder.append來完成,會生成不同的對象

-----------------------------------------------------------

String s1 = “abc”;

final String s2 = “a”;

final String s3 = “bc”;

String s4 = s2 + s3;

System.out.println(s1 == s4);

A:true,因?yàn)閒inal變量在編譯后會直接替換成對應(yīng)的值,所以實(shí)際上等于s4=”a”+”bc”,而這種情況下,編譯器會直接合并為s4=”abc”,所以最終s1==s4。

-----------------------------------------------------------

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 從網(wǎng)上復(fù)制的,看別人的比較全面,自己搬過來,方便以后查找。原鏈接:https://www.cnblogs.com/...
    lxtyp閱讀 1,440評論 0 9
  • package cn.itcast_01;/* 字符串:就是由多個字符組成的一串?dāng)?shù)據(jù)。也可以看成是一個字符數(shù)組。 ...
    蛋炒飯_By閱讀 730評論 0 0
  • String類和正則表達(dá)式 今天的主要內(nèi)容 Scanner類概述Scanner獲取數(shù)據(jù)出現(xiàn)的小問題及解決方案 St...
    須臾之北閱讀 2,023評論 0 3
  • 概述 在分析字符串常量池之前,先來分析一下java的內(nèi)存區(qū)域,然后再各種的情況分析一下各種情況下的情況; 在《深入...
    riverhh閱讀 881評論 0 2
  • String類 String s1 = "abc"; //在常量區(qū)中存放了一個"abc"的字符串對象 Strin...
    曾月月閱讀 518評論 0 0

友情鏈接更多精彩內(nèi)容