2015-12-05 30 views
0

在下面的代碼將被傳遞:內存模型Java中的字符串時一個參考變量在新的對象

String str1= new String("Hello"); 
String str2= new String(str1); 

我想知道,什麼獲取當我輸入(STR1)通過呢? 字符「你好」或str1引用的字符串對象的內存地址?

在內存模型中,是否意味着新對象包含指向由str1引用的對象的地址,還是包含它自己的文本「Hello」?

謝謝

回答

1

基本上地址被傳遞的,但它被稱爲「引用」,實際上可能是一個手柄或其他一些數量,而不是名副其實的內存地址。每個new SomeObject生成其自己的唯一參考。

String裏面,ctor足夠聰明,可以識別不同的String,並複製數據,即傳遞給ctor的字符串中的「Hello」部分。 ctor不會直接存儲參考文獻的副本。

同類問題:Is Java pass-by-value or pass-by-reference?

相關問題