更新時間:2019-09-05 10:07:58 來源:動力節點 瀏覽2989次
今天動力節點培訓機構小編為大家介紹“java中string創建對象的方式有哪幾種”,希望大家看完此文,能夠熟悉string創建對象的方式,下面就隨小編一起看看java中string創建對象的方式分別是哪些。
Java中String是一個特殊的包裝類數據有兩種創建方式:
String s = "abc";
String s = new String("abc");
第一種先在棧中創建一個對String類的對象引用變量s,然后去查找"abc"是否被保存在字符串常量池中,如果沒有則在棧中創建三個char型的值'a'、'b'、'c',然后在堆中創建一個String對象object,它的值是剛才在棧中創建的三個char型值組成的數組{'a'、'b'、'c'},接著這個String對象object被存放進字符串常量池,最后將s指向這個對象的地址,如果"abc"已經被保存在字符串常量池中,則在字符串常量池中找到值為"abc"的對象object,然后將s指向這個對象的地址。
第一種特點:JVM會自動根據棧中數據的實際情況來決定是否有必要創建新對象。
第二種可以分解成兩步:
1、String object = "abc";
2、String s = new String(object);
第一步參考第一種創建方式,而第二步由于"abc"已經被創建并保存到字符串常量池中,因此jvm只會在堆中新創建一個String對象,它的值共享棧中已有的三個char型值。
第二種特點:一概在堆中創建新對象,而不管其字符串值是否相等,是否有必要創建新對象。
在講字符串比較前,必須要了解==和equals的區別:
因為java所有類都繼承于Object基類,而Object中equals用==來實現,所以equals和==是一樣的,都是比較對象地址,java api里的類大部分都重寫了equals方法,包括基本數據類型的封裝類、String類等。對于String類==用于比較兩個String對象的地址,equals則用于比較兩個String對象的內容(值)。
以上就是動力節點java培訓機構小編介紹的“java中string創建對象的方式分別是哪些”的內容,希望對大家有幫助,更多java資訊最新內容請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦
Javase基礎教程視頻下載——String對象的創建:http://www.dabaquan.cn/xiazai/2526.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習