不可变对象与final类型

  创建后状态不能被修改的对象叫做不可变对象。不可变对象天生就是线程安全的,可以放心的共享与发布,不需要创建防御性拷贝。

  可变对象传递给不可信的代码,或者将它发布到不可信代码可以找到的地方,都是危险的,有可能被改变状态或者会保留引用并在其他线程中修改状态。

  不可变性并不简单地等于将对象中的所有域都声明为final类型,所有域都是final类型的对象依旧可以是可变的,因为final域可以获得一个可变对象的引用。

posted @ 2011-09-15 18:02  k3huihui  阅读(296)  评论(0)    收藏  举报