如果一个对象不能够修改其内部状态(属性),那么它就是线程安全的,因为不存在并发修改
    在 web 阶段学习时,设计 Servlet 时为了保证其线程安全,都会有这样的建议:不要为 Servlet 设置成员变量,这种没有任何成员变量的类是线程安全的。因为成员变量保存的数据也可以称为状态信息,因此没有成员变量就称之为【无状态
    final 的使用

    • 属性用 final 修饰,保证了该属性是只读的,不能修改
    • 类用 final 修饰,保证了该类中的方法不能被覆盖,防止子类无意间破坏不可变性

    通过创建副本对象来避免共享的手段称之为【保护性拷贝(defensive copy)】