Día de Ruru
JS 배열과 Java 배열의 차이 본문
자료구조에서 말하는 배열은 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조를 말한다.
배열의 요소는 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접해 있다.
자바스크립트의 배열 구조
자바스크립트의 배열은 배열의 요소를 위한 각각의 메로리 공간이 동일한 크기를 갖지 않아도 되며, 연속적으로 이어져 있지 않을 수도 있다. (희소 배열이라고 한다.)
자바스크립트의 배열은 일반적인 의미의 배열의 동작을 흉내내는 특수한 객체이다.
var obj = {
x: 3,
arr: [ 3, 4, 5 ]
};
위의 코드에 대한 메모리 할당은 아래와 같다. arr 배열이 할당되는 과정을 보면 배열의 주소를 저장하고 그 저장된 주소에 데이터가 할당되어 있는 것이 아니라 다시 변수 영역의 주소가 할당되어 있다.
자바스크립트의 배열은 해시 테이블로 구현된 객체이므로 인덱스로 요소에 접근하는 경우 일반적인 배열보다 성능적인 면에서 느릴 수 있다. 하지만 요소를 삽입하고 삭제하는 경우 일반적인 배열보다 빠르게 동작이 가능하다.
자바의 배열 구조
int[] num = new int[] {11,564,125,896};
위의 코드에 대한 자바 배열의 메모리 할당 구조이다. 자바스크립트에서의 메모리 할당 구조랑을 확실히 다르다
배열을 생성하면 연산자 new 에 의해서 메모리의 빈 공간에 4개의 int형 데이터를 저장할 수 있는 공간이 마련되며 초기화한 값들의 주소가 입력되고 그 배열의 주소가 참조변수 num 에 할당된다.
참조 - 모던 자바스크립트 Deep Dive
- 코어 자바스크립트
- 자바의 정석
'Java' 카테고리의 다른 글
[Java]변수란? (0) | 2023.09.10 |
---|
Comments