不可变类即创建该类的实例后,该实例的实例变量是不可变的。
java的8个包装类和java.lang.String类都是不可变类。
创建不可变类:
用private和final修饰成员变量
提供带参数的构造器进行初始化成员变量
仅提供getter方法,不提供setter方法
如有必要,重写Object的equals方法和hashCode方法
缓存不可变类实例