簡單的問題,Java中的列表是否通過值或引用來保存對象?如果我將一個對象放在一個列表中,稍後改變它的一個值,列表中的那個將會有更新的值嗎?Java - 列表中的對象是否由值或引用保存?
回答
通過值或引用在Java保持對象中執行列表?
列表是一個包含對象引用的有序集合。
如果我把一個對象放在一個列表中,然後改變它的一個值,那麼列表中的那個將會有更新的值嗎?
您只能更改/更新mutable對象。您無法通過其引用更新不可變的(例如List<String>
)對象。
很明顯,通過引用,就像任何Java對象的自定義一樣,除非您有意克隆該對象,並將該副本放入列表中。
然後它是對副本的引用。 – 2012-01-16 03:05:20
當然。如果你改變*那個*項目,你仍然會改變列表的內容。但克隆和傳球通常是爲了在沒有改變的情況下留下副本。 – 2012-01-16 08:49:30
我的觀點是,「將副本放入列表中」模糊了OP正試圖弄清楚的值與參考之間的區別,就這些了。 – 2012-01-16 10:03:49
所有對象都是通過在java中引用的幫助。一份清單由參考資料保存。其中的對象由參考保存。因此,如果稍後更改值,它將顯示更新的值。
用戶定義的數據類型總是通過引用傳遞,如果你的代碼中定義了一些類的變量列表,他們都通過引用
是的,他們都通過引用存儲存儲。如果要檢索該值,請通過實現Cloneable接口來克隆該對象並實現自己的克隆方法。
- 1. 隊列保持引用或對象值?
- 2. 是否可以存儲對列表中的對象的引用?
- 3. Java是否將內存中的類保留或只是對象?
- 4. ConcurrentQueue是否保存對象的引用或值? 「內存不足」異常
- 5. 是否存在Java「引用對象」?
- 6. 通過引用或按值存儲在列表中的對象
- 7. NodeJS保存在Redis中的對象或列表的列表?
- 8. 對象是否通過JavaScript中的引用或值傳遞?
- 9. 從列表中檢索的對象是否獲取該對象的副本或對該對象的引用?
- 10. 不保存對象在javascript中的引用列表
- 11. JavaScript的:由列索引對象的值
- 12. 是否複製或引用ArrayList對象?
- 13. 使用Java序列保存對象
- 14. 在Java動態列表或映射中更改對象引用
- 15. Sequelize - 保存對象列表
- 16. Mongodb保存對象列表
- 17. C#保存對象列表Vs的保存對象(從JSON)
- 18. 如何檢查對象列表中是否存在對象?
- 19. 保存任務中引用的對象
- 20. 序列化對象是否存儲在磁盤或內存中?
- 21. 將列表中的迭代值保存到單個對象中
- 22. 是否可以使用JPA來保存DSL Java對象?
- 23. String.intern是否只是複製Java中的對象引用?
- 24. Java引用對象的序列化是「失去價值」?
- 25. Rails 3.保存屬性由值對象表示的關聯
- 26. JavaScript是否通過引用或按值處理對象?
- 27. 是否通過引用或值傳遞JavaScript對象
- 28. 在表格中保存價值對象列表
- 29. List.subList是否保留對原始列表的引用?
- 30. 在mongodb中保存對象列表
一個對象本身。 *從不*在轉讓或傳遞給方法時隱式複製/克隆/重複。 – 2012-01-16 03:06:04