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 

 

SonarCloud

██████╗ ██╗ ██╗████████╗██████╗ █████╗ ████████╗███████╗██████╗ ██████╗ ██████╗ ██████╗ ██

sonarcloud.io

Java:S1149

+ Recent posts