java安全编码指南之:Mutability可变性详解
可变类型对象就是说,对象在创建之后,其内部的数据可能会被修改。所以它的安全性没有保证。虽然mutable对象安全性不够,但是因为其可以被修改,所以会有效的减少对该对象的拷贝。而immutable对象因为不可改变,所以尝试对该对象的修改都会导致对象的拷贝,从而生成新的对象。我们最常使用的String就是一个immutable对象。那么可变性在java的安全编码中的最佳实践是怎么样的呢?首先是Date,我们可以看到在其中定义了很多setXXX方法。同时不可变对象的字段基本上都是final的,防止被二次修改。其实不然,比如我们定义了一个final的List,虽然这个list不能变化,但是list里面的值是可以变化的。
用户评论