[java]배열(array)
1. 배열( Array )
java에서 new연산자 없이 데이터표현만으로 객체가 되는 타입이 있다. 바로 String과 Array다.
( class는 new연산자로 객체를 만듬)
배열의 특징
- 다수의 데이터를 하나의 변수로 관리 가능
- 0부터 시작하는 index를 이용해 관리 가능
- 기본타입과 참조타입으로 배열 생성 및 활용 가능
- 배열 생성 시 length라는 배열 크기값을 보유한 변수 자동 생성
- 생성된 배열크기 수정 불가
1.1 표현법
타입 [ ] 변수
혹은
타입 변수 [ ]
1.2 배열과 메모리
배열뿐만 아니라 배열과 같은 String이나 다른 참조타입은 내장타입과 메모리에 저장되는 방식이 다르다.
1.2.1 내장타입의 메모리 저장방식
- int a=1; 라면
- a라는 변수명은 스택에 저장된다.
- 스택에 있는 a안에 데이터 1이 저장된다.
결국 print(a)는 a가 가지고 있는 데이터 1이 출력된다.
1.2.2 배열,참조타입의 메모리 저장방식
- int[] a={1,2,3}; 라면
- a라는 변수명은 스택에 저장된다.
- {1,2,3}데이터는 힙메모리에 저장된다.
- 힙메모리에 저장된 {1,2,3}의 주소가 스택에 저장된 a에 저장된다.
결국 print(a)는 a가 가지고 있는 데이터 (1,2,3)의 주소가 출력된다.
1.2.3 조금 다른 String
String 또한 참조타입의 한 종류로써 위 과정만 보면 같은 과정을 반복했을 때, String도 데이터의 주소값이 출력되어야 한다. 하지만 특별한 설정을 통해 String은 그냥 데이터 자체가 출력되게 만든 class여서 데이터의 주소가 출력되지 않는다.