您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何初始化String,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1: String str = "abc"創建一個字符串的過程
首先在常量池(方法區)中查找是否存在內容為"abc"的字符串對象
如果不存在則在常量池中創建一個"abc"的字符串對象,并讓str引用該對象
如果存在則直接讓str引用該對象
2: String str = new String("abc")創建一個字符串的過程
首先定義一個str的String類型的引用并存放在棧中
在字符串常量池中查看是否存在內容為"abc"字符串對象
若存在則跳過這個步驟,若不存在,則在字符串常量池中創建一個內容為"abc"的字符串對象。(前三步都是在編譯時完成的)
執行new操作,在堆中創建一個指定的對象"abc",這里堆的對象是字符串常量池“abc”對象的一個拷貝對象。
讓str指向堆中“abc”這個對象(也就是存儲這個對象的在堆中的地址)
有時會問 String str = new String("abc")
創建一個字符串的過程會創建幾個對象?
答:一個或兩個(因為編譯時會檢查方法區常量池中是否已經存在需要創建的字符串對象。若存在直接將引用指向常量池的對象,此時只會在隨后的運行時堆中創建一個對象。而如果不存在,會先在常量池中創建一個對象,在隨后的運行時還會在堆中再創建一個對象,所以此時會創建兩個對象)
上述內容就是如何初始化String,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。