91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的String 與 new String()有什么不同的地方

發布時間:2020-11-17 16:13:10 來源:億速云 閱讀:180 作者:Leah 欄目:編程語言

這篇文章給大家介紹Java中的String 與 new String()有什么不同的地方,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Java String 和 new String()的區別

棧區存引用和基本類型,不能存對象,而堆區存對象。==是比較地址,equals()比較對象內容。

String str1 = "abcd"的實現過程:首先棧區創建str引用,然后在String池(獨立于棧和堆而存在,存儲不可變量)中尋找其指向的內容為"abcd"的對象,如果String池中沒有,則創建一個,然后str指向String池中的對象,如果有,則直接將str1指向"abcd"";如果后來又定義了字符串變量 str2 = "abcd",則直接將str2引用指向String池中已經存在的“abcd”,不再重新創建對象;當str1進行了賦值(str1=“abc”),則str1將不再指向"abcd",而是重新指String池中的"abc",此時如果定義String str3 = "abc",進行str1 == str3操作,返回值為true,因為他們的值一樣,地址一樣,但是如果內容為"abc"的str1進行了字符串的+連接str1 = str1+"d";此時str1指向的是在堆中新建的內容為"abcd"的對象,即此時進行str1==str2,返回值false,因為地址不一樣。

String str3 = new String("abcd")的實現過程:直接在堆中創建對象。如果后來又有String str4 = new String("abcd"),str4不會指向之前的對象,而是重新創建一個對象并指向它,所以如果此時進行str3==str4返回值是false,因為兩個對象的地址不一樣,如果是str3.equals(str4),返回true,因為內容相同。

不多說,直接上代碼:

String str1 = "abcd";
String str2 = "abcd";
String str3 = new String("abcd");
String str4 = new String("abcd");
System.out.println(str1==str2);//true地址一樣
System.out.println(str3==str4);//false,但地址不一樣
System.out.println(str3.equals(str3));//true,值一樣
System.out.println(str2.equals(str3));//true,值一樣
System.out.println((str1+"a")==(str2+"a"));//false;進行了+連接地址不一樣

關于Java中的String 與 new String()有什么不同的地方就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霞浦县| 鹤岗市| 东安县| 叙永县| 永兴县| 包头市| 革吉县| 邛崃市| 喀喇沁旗| 青铜峡市| 焦作市| 本溪| 靖江市| 尼玛县| 濮阳县| 水富县| 怀仁县| 湄潭县| 正定县| 桦川县| 项城市| 开平市| 红河县| 玉林市| 巨野县| 苏州市| 常州市| 乐亭县| 四川省| 卢氏县| 赤城县| 临夏市| 枣阳市| 慈溪市| 申扎县| 山东省| 晋中市| 钟祥市| 阜城县| 胶州市| 赫章县|