Vector, Hashtable 및 StringBuffer와 같은 Java API의 초기 클래스는 thread-safe하게 동기화되어 있다.
하지만 단일 스레드에서 사용하는 경우에도 동기화를 하게 되므로 성능에 큰 부정적인 영향을 끼친다.
따라서 싱글 스레드 상황에서는 동기화되지 않는 다른 대체클래스를 사용하는 것이 좋다.
- Vector 대신 ArrayList 또는 LinkedList
- Stack 대신 Deque
- Hashtable 대신 HashMap
- StringBuffer 대신 StringBuilder
비준수 코드 예
Vector cats = new Vector();
준수 솔루션
ArrayList cats = new ArrayList();
참고자료
SonarLint
https://sonarcloud.io/organizations/default/rules?languages=java&open=java%3AS1149&q=S1149
Java:S1149