본문 바로가기
Java/정리

[Java] 배열

by 콧등치기국수 2021. 5. 5.

1. 배열 선언

자료형[ ]   배열명;
자료형   배열명[ ];

▶ int[ ] arr;

: arr 이란 변수 생성 → 배열의 주소값이 담김(0x200)

 

 

 

2. 배열 할당

→ 할당되고 나면 크기는 나중에 변경이 불가능하다.

자료형[ ] 배열명 = new 자료형[배열크기];
자료형 배열명[ ] = new 자료형[배열크기];

▶ arr = new int[3];

: 3개의 칸이 있는 배열 생성, 배열의 값이 0x200번지에 저장됨

( ※ 0x : 16진수 )

 

 

 

int[ ] myArray = new int[5];

출처: https://stackoverflow.com/questions/8936997/memory-structure-for-an-array-of-pointers-to-objects-visualization

참조변수로 데이터 값은 heap영역에 할당되며 stack에 배열공간의 주소를 저장한다.

stack영역에 있는 배열공간의 주소를 이용해 배열의 인덱스를 참조하여 값을 가져옴

 

 

3. 배열 초기화

3-1. for문을 이용한 초기화

for(int i = 0; i < arr.length; i++) {        //배열이름.length : 배열의 길이 (()없음)

    arr[i] = i;

}

 

3-2. 선언과 동시에 초기화

int[] arr = {1,2,3,4,5};     //중괄호 블럭을 사용하는 경우 --> new연산자 사용 X,내부적으로 수행

int[] arr = new int[] {1,2,3,4,5};

String frit[] = {"사과","포도","참외"};

 

3-3. 주소값 출력 & 값 출력

double[] dArr = new double[3];

System.out.println("dArr : " + dArr);                       // 주소값
System.out.println("dArr의 해쉬코드 : " + dArr.hashCode);    // 주소값의 십진수

for(int i=0; i<dArr.length; i++) {                         //배열을 따로 초기화하지 않으면 
	System.out.println(dArr[i]);                       //JVM이 지정한 자료형의 기본값으로 배열을 초기화(double->0.0)
}

 

결과

dArr의 주소값 : [I@3830f1c0
dArr의 해쉬코드 : 942731712

0.0
0.0
0.0
0.0
0.0

1) System.out.println( 배열이름 )  주소값

2) System.out.println( 배열이름.hashCode )  주소값 십진수 값

 

 

 

'Java > 정리' 카테고리의 다른 글

[Java] Math.random()  (0) 2021.05.08
[Java] 2차원 배열 & 가변배열  (0) 2021.05.06
[Java] 조건문_Continue, Break  (0) 2021.05.05
[Java] (int, character) & (String) 값 비교  (0) 2021.05.05
[Java] 입력 버퍼 비우기(Next(), NextLine())  (0) 2021.05.04