真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中的String與newString()有什么不同的地方-創(chuàng)新互聯(lián)

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

為淄川等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及淄川網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計、成都網(wǎng)站制作、淄川網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

Java String 和 new String()的區(qū)別

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

String str1 = "abcd"的實現(xiàn)過程:首先棧區(qū)創(chuàng)建str引用,然后在String池(獨立于棧和堆而存在,存儲不可變量)中尋找其指向的內容為"abcd"的對象,如果String池中沒有,則創(chuàng)建一個,然后str指向String池中的對象,如果有,則直接將str1指向"abcd"";如果后來又定義了字符串變量 str2 = "abcd",則直接將str2引用指向String池中已經存在的“abcd”,不再重新創(chuàng)建對象;當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")的實現(xiàn)過程:直接在堆中創(chuàng)建對象。如果后來又有String str4 = new String("abcd"),str4不會指向之前的對象,而是重新創(chuàng)建一個對象并指向它,所以如果此時進行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與newString()有什么不同的地方-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/pjeoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部