카테고리 없음

Java) 10/22 - 배열 (Array)

nomfang 2021. 10. 22. 14:53
728x90
반응형

배열

같은 데이터 타입을 가지는 서로 다른 값들을
하나의 변수로 처리하는 것
여러개의 값을 담을 수 있는 객체 (객체이므로 new 생성자 사용)
인덱스를 가지고 있다

Rimitive (기본형)

  1. 선언: int[] arr;
  2. 생성: arr = new int[]; (반드시 사이즈를 명시)
  3. 초기화: arr[0] = 1; arr[1] = 2; arr[2] = 3;

메모리 할당 순서

  1. stack 영역에 변수(참조 변수)
  2. heap 영역에 배열 생성 및 묵시적 초기화, 주소 값 할당
  3. stack의 변수가 heap영역의 배열의 주소를 참조하게 됨

배열은 length 라는 단 하나의 필드를 가짐 (배열의 사이즈를 리턴)

객체가 있다는 것은 class의 type이 존재한다는 뜻이지만
배열은 class가 없는 객체

배열 자체를 print 해보면 배열이 가진 주소 값이 나오지만
실제 주소값은 아니다

배열의 성질

Resizing이 되지 않는다
-> 한 번 만든 배열 객체에 사이즈를 수정하면 새로운 객체가 만들어짐 (기존 객체는 쓰레기 객체가 된다)

다른 사이즈를 가진 배열의 내용을 Copy해 올 수 있다
-> System.arrayCopy();

 

 

배열의 변수명엔 복수를 뜻하는 s를 붙여주는 것이 좋다

 

배열과 관련된 변수를 초기화 할 때는

어떤 값이 배열에 들어올지 아직 모르기 때문에

기본 값인 0 등으로 초기화 하는 것 보다는

배열 인덱스 0 번째의 값으로 초기화 하는 것이 더 좋은 방법

 

 

반응형