스레드 안전성:
Vector: 스레드 안전(thread-safe)한 클래스로 구현되어 있다.
=>Vector가 여러 스레드에서 동시에 접근되더라도 안전하게 작동
ArrayList: 스레드 안전하지 않은 클래스로 구현되어 있다.
=> ArrayList는 단일 스레드 환경에서 사용하는 것이 가장 좋다.
성능:
Vector는 스레드 안전성을 유지하기 위해 동기화(synchronization)를 사용.
=> 여러 스레드에서 Vector에 접근할 때 성능이 저하될 수 있다.
ArrayList는 스레드 안전성을 고려하지 않기 때문에 동기화 오버헤드가 없으므로 일반적으로 더 빠르다
용량 증가:
ArrayList는 요소가 추가될 때 내부 배열의 크기를 동적으로 증가 시킨다 , 기본적으로 현재 크기의 50%씩 증가
Vector는 내부 배열의 크기를 현재 크기의 100%씩 증가시킨다.
=>Vector는 ArrayList보다 메모리를 더 많이 사용할 수 있다.
'의문점 공부하기 > 📌 Java' 카테고리의 다른 글
📌 Queue에서, poll()과 remove()의 차이는 무엇일까? (0) | 2023.07.06 |
---|---|
📌 Array와 ArrayList의 차이점은!? (1) | 2023.07.04 |
📌 Array에서 List로 전환하려면 어떻게 해야할까? (0) | 2023.06.29 |
📌 ArrayList와 LinkedList의 차이점은 무엇일까? (0) | 2023.06.28 |
📌 HashSet 구현 원칙은 무엇일까? (0) | 2023.06.27 |