가장 기본적인 자료구조
같은 타입의 변수들을 일렬로 정렬해 놓은 구조
논리적 저장 순서와 물리적 저장 순서가 일치 => 인덱스(index)로 해당 원소(element)에 접근 가능
찾고자하는 원소의 인덱스 값을 알고 있으면 Big-O(1)에 해당 원소로 접근 가능
메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조, 배열의 크기는 한 번 정하면 변경 불가
배열 초기화 시에 메모리에 할당되어 ArrayList보다 속도가 빠르다.
생성할 때 데이터를 저장하는데 필요한 메모리를 한 번에 확보해서 사용한다. (연속된 메모리 사용)
- 배열의 크기를 바꿀 수 없다. 즉, 배열의 크기는 제한적이다.
삭제 또는 삽입의 과정에서는 해당 원소를 삭제/삽입 후 해당 원소보다 큰 인덱스를 갖는 원소들을 shift 해야 함 => 비용 발생 (시간복잡도 O(n))
-메모리는 Array가 선언될 때 (컴파일할 때) Stack 영역에 할당한다.