不可变对象指声明并赋值后就不可更改的变量,包括基本类型和实例对象。实现方法有:
1.由final修饰
final修饰的类不可继承,final修饰的方法不可重写,final修饰的基本变量不可更改值(包括Integer这样的包装类),final修饰的对象不可被重新引用至新的地址(但是这个地址中的对象本身可以被修改)。
2.采用专门的不可变对象类
为了保证对象中的值也不能被修改。可以采用不可变对象类。Collections类提供了不可变对象方法,将普通的Collection对象(LIST,MAP,SET等),通过Collections.unmodifiableXXX()方法,获取其不可变对象。
除此之外,可以使用guava提供的不可变对象(ImmutableXXX)