阅读可变/不可变对象 不可变对象有许多有用的属性。但是对于几乎所有不可变对象来说,有两个是典型的:
1) 不可变对象比可变对象更容易实现。2)不可变对象可以从不同的线程同时自由使用。
我有几个问题,请,如果你回答并且对你来说并不困难,请逐点回答我,提前谢谢:)
1) 如何理解对象可以更容易实现?
2) 信息是否正确?- 不可变对象是其外部可见状态在创建后无法更改的对象。Java 类库中的 String、Integer 和 BigDecimal 类是不可变对象的示例——它们表示在对象的生命周期内不能更改的单个值。
3) 除了 String (StringBuilder, StringBuffer), Integer, BigDecimal 类之外还有哪些可变/不可变对象?只是我想看到的名字
4)不可变对象可以从不同的线程同时自由使用。线程是线程?它们是同义词吗?
简单得多,因为当一个对象原则上不能改变时:
除了
标准库中的不可变类列表不断更新,但他们试图在这个答案中给出或多或少的完整列表。
自由使用是可能的也是不可能的,因为不可变对象很可能包含可变字段,但通常在多线程应用程序中使用不可变对象要安全得多,在某些情况下是完全安全的。