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