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中的不可變類
- 3. Java不可變類?
- 4. 可變內容在內容類型上有所不同
- 5. 不可變類型的ID
- 6. 是否有可能改變Java中的數組類型?
- 7. Java - 啓動不具有泛型類型的泛型變量;
- 8. java中變量的類型
- 9. 類型(可變)VS(類型)可變
- 10. 可變與不可變類型圖表
- 11. 類型的「變量」,類型爲「可變」
- 12. Java不可變類疑問
- 13. 使Java類不可變
- 14. OCaml中的可變類型
- 15. 在Java中改變類型的子類
- 16. DateTime.TryParse所有可能的日期類型
- 17. 所有類都可用的變量?
- 18. C++可變多類型有可能嗎?
- 19. 原始類型的泛型類可以採用該泛型類的所有不同變體的事實是Java兼容性的問題嗎?
- 20. 如何在StructureMap中獲取所有可能的泛型類型?
- 21. 具有協變返回類型的Java類型轉換
- 22. 哪些類型在Google Go語言中可變且不可變?
- 23. Java中的不可變bean
- 24. 如何在Java中獲取類型變量的類型泛型
- 25. 是我的Java類不可變
- 26. java中所有可能大小的所有可能的排列
- 27. Java的String格式具有不同的變量類型
- 28. Python - 不可變類型的例子
- 29. 的Linq:變換memberExpression類型不可空
- 30. 有沒有辦法在類中獲得某種類型的所有變量?
原語不是不可變的。 「在他們接受某種方法後他們沒有改變」這一事實是因爲他們是通過價值傳遞的,而不是因爲不可改變。 – 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