在早起Java API中,比如Vector,Hashtable和StringBuffer,为了线程安全而设计为同步的。
不幸的是,同步会严重影响性能,及时只需要在单独线程中使用这些集合。
最好使用新的非同步类来替换:
ArrayList 或 LinkedList 代替 VectorHashMap 代替 HashtableStringBuilder 代替 StringBuffer如下代码所示:
Vector cats = new Vector(); // Non-Compliant
应该重构为:
ArrayList cats = new ArrayList(); // Compliant
当在方法标签使用@Override覆盖已存在的方法时,是允许使用这些同步的类的。
@Override
public Vector getCats() {...} //Compliant