簡單的問題,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. ConcurrentQueue是否保存對象的引用或值? 「內存不足」異常
- 3. 通過引用或按值存儲在列表中的對象
- 4. 對象是否通過JavaScript中的引用或值傳遞?
- 5. 從列表中檢索的對象是否獲取該對象的副本或對該對象的引用?
- 6. JavaScript的:由列索引對象的值
- 7. 使用Java序列保存對象
- 8. Sequelize - 保存對象列表
- 9. Mongodb保存對象列表
- 10. 將列表中的迭代值保存到單個對象中
- 11. 是否可以使用JPA來保存DSL Java對象?
- 12. Rails 3.保存屬性由值對象表示的關聯
- 13. String.intern是否只是複製Java中的對象引用?
- 14. 在表格中保存價值對象列表
- 15. JavaScript是否通過引用或按值處理對象?
- 16. List.subList是否保留對原始列表的引用?
- 17. 保存列表中對象的相同值
- 18. 是否可以將值列表保存到SQLite列中?
- 19. 找到引用數爲Java對象或檢查它是否被引用別處
- 20. Python:是否有任何理由*不*緩存對象的散列?
- 21. IObservable.Subscribe()中的IDisposable是否保存對源的引用?
- 22. 列表<>是否存儲對屬性或實例的引用?
- 23. 是否有Java集合或列表可以返回給定對象值的對象鍵?
- 24. 存儲對列表元素的引用是否安全?
- 25. Java中的內部對象是否有引用?
- 26. Javascript確保對象不是由空或者對象定義的對象
- 27. 檢查對象是否是Python中列表的列表?
- 28. 如何在C#中的列表中存儲對象的引用?
- 29. 我可以測試是否存在另一個引用到java中的對象?
- 30. 的Java創建CSV數據對象並保存到列表
一個對象本身。 *從不*在轉讓或傳遞給方法時隱式複製/克隆/重複。 – 2012-01-16 03:06:04