假設我定義了一個新類,比如PhoneBook。 我做到以下幾點:Java和內存中的指針
Phonebook x = new Phonebook()
Phonebook x1=x
Phonebook x2=x
...
Phonebook x99 =x
那麼這將不消耗將它,因爲所有的100個變量都指向相同的電話簿多大的內存?
謝謝
假設我定義了一個新類,比如PhoneBook。 我做到以下幾點:Java和內存中的指針
Phonebook x = new Phonebook()
Phonebook x1=x
Phonebook x2=x
...
Phonebook x99 =x
那麼這將不消耗將它,因爲所有的100個變量都指向相同的電話簿多大的內存?
謝謝
正確。每個引用都會佔用少量內存(通常是32或64位系統上的4或8個字節),就是這樣。
如果這些是局部變量,它們不會消耗堆中的任何內存,因爲它們處於堆棧上。 Java指針的大小通常是JVM實現特有的32位。
當然,這也意味着你只有在電話簿上,並且對它所做的任何修改都將通過任何指針「看到」。人們經常犯的錯誤是用指向同一對象的指針填充數組或列表,並期望(錯誤地)爲每個數組條目重複該對象。 –