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