티스토리 뷰
배열의 크기가 동적(정해지지 않은 : 가변적인) 인 배열을 사용할때 사용되는 클라스
1. Vector
- 필요에 따라 크기를 동적으로 조절할 수 있는 동적배열을 구현
- 배열과 마찬가지로 정수 인덱스를 이용하여 배열에 액세스 가능
- 동기화(Thread Safe) 되어있으며 한번에 하나의 스레드만 벡터의 메소드를 호출 할 수 있습니다.
2. ArrayList
- 자바 표준 배열보다 약간 느릴수 있지만 배열에서 많은 조작이 필요로할때 유용하게 사용
- 기본 데이터 타입(int, char 등)에 대해 만들수 없기때문에 Integer, Object 등의 객체에 대해 참조해서 사용
3. 차이
- 동기화
-- Vector는 동기화가 가능한 반면 ArrayList는 동기화가 안됨
- 스레드
-- 스레드 안전이란 멀티 스레드 프로그래밍에서 여러 스레드가 동시에 접근이 이루어져도 프로그램 실행에
문제가 없음을 뜻함 즉, Vector는 동기화 되어있기 때문에 한번에 하나의 스레드만 접근할 수 있기때문에 스레드
안전
-- ArrayList는 동기화되지 않았기 때문에 명시적으로 동기화 할 필요가 있습니다.
- 성능(속도)
-- 동기화를 하지않는 ArrayList의 속도가 더 빠르다.
- 크기
-- 배열의 크기가 동적으로 변하는 과정에서 Vector클라스는 인덱스의 크기가 현재 배열과 같은 크기의 인덱스가 증가(100%) 반면 ArrayList는 현재배열 크기의 반(50%)가 증가한다.
경제적인 면에서는 ArrayList가 좋다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 오버로딩(Overloading) VS 오버라이딩(Overriding) (0) | 2021.02.24 |
---|---|
[JAVA] OOP 객체 지향 프로그래밍 (0) | 2021.02.23 |
[JAVA] Thread 스레드 개념 (0) | 2021.02.22 |
[JAVA] 생성자 Constructor (0) | 2021.02.22 |
[JAVA] static 메소드 (0) | 2021.02.22 |
- Total
- Today
- Yesterday
- 면접
- 릿코드
- C언어
- ajax
- OOP
- docker
- kakao
- Algorithm
- spring-cloud
- CS
- Spring
- nginx
- Solid
- 스프링
- 자바
- 알고리즘
- java
- 스프링부트
- 그래프
- springboot
- interview
- 매트랩
- 자격증
- Matlab
- security
- 백준
- 수학
- 프로그래머스
- 디자인패턴
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |