Java中有不可變類型。如果您將不可變對象傳遞給方法,則在調用該方法後,即使該方法中的值已更改,該對象也不會更改。我知道所有的基元都是不變的。 String
也是不可變的。
我寫了一個簡單的代碼來檢查Java中的功能,看起來基元的包裝類也是不可變的。任何人都可以在java中列出所有不可變類型?java中的所有不可變類型
1
A
回答
4
它不會調用該方法時,即使它的價值在該方法改變後,被改變
與無法改變無關。
void change(SomeType st) {
st.setValue(123);
}
將改變真實的東西。雖然
void change(SomeType st) {
st = new SomeType(123);
}
不會。這裏的區別在於您是在更改引用還是在引用的對象上進行操作。
字符串和那些包裝類被稱爲immutable,因爲絕對沒有成員函數可以更改該對象,如setValue
。
希望你明白這一點。如果您有任何疑問,您可以自由發表評論和詢問。
+0
我明白了,非常感謝。 – shift66 2012-01-18 07:01:32
-1
在jdk中提供的任何用於保存原始值的類都應該通過此列表。
示例 - 整數,長整數,雙整數,字符串等。
1
不,這是不可能的。
每個人都可以加入自己穩定的類型,我敢肯定每個不同版本的Java引入了一些新的
相關問題
- 1. 所有類都可見的變量Java
- 2. Java SE 7中不可變類型的可變參數 - 如何?
- 3. java中的不可變類
- 4. Java不可變類?
- 5. 可變內容在內容類型上有所不同
- 6. 不可變的值類型
- 7. 不可變類型的ID
- 8. 是否有可能改變Java中的數組類型?
- 9. java中變量的類型
- 10. Java - 啓動不具有泛型類型的泛型變量;
- 11. 類型(可變)VS(類型)可變
- 12. Groovy @ Java中的不可變類
- 13. 可變與不可變類型圖表
- 14. 「對象」所有類型的列表 - Java
- 15. 類型的「變量」,類型爲「可變」
- 16. OCaml中的可變類型
- 17. 使Java類不可變
- 18. Java不可變類疑問
- 19. 重命名型類的局部變量中的所有類
- 20. android.widget.LinearLayout所有可能的錯誤類型
- 21. DateTime.TryParse所有可能的日期類型
- 22. 在Java中改變類型的子類
- 23. 在可變函數中獲取不可變向量的類型
- 24. 所有類都可用的變量?
- 25. Android(Java),可變默認引用類型?
- 26. Java繼承;從可變類型延伸
- 27. 在Python中定製不可變類型
- 28. 不可變的類型只有變異成員
- 29. 的Java:如何有列表類型採取可變參數
- 30. C++可變多類型有可能嗎?
原語不是不可變的。 「在他們接受某種方法後他們沒有改變」這一事實是因爲他們是通過價值傳遞的,而不是因爲不可改變。 – amit 2012-01-18 06:54:38
類似的問題:http://stackoverflow.com/questions/5124012/examples-of-immutable-classes – Azodious 2012-01-18 06:56:08
什麼理由知道這個列表? – Dapeng 2012-01-18 06:58:11