Java 자료형
- 원시형(PrimitiveType)과 참조형(ReferenceType)
- 원시형(기본형):
값을 표현하기 위한 자료형 - byte, short, int, long, char, float, double, boolean
- 참조형: 특정 대상을 표현하기 위한 자료형
배열(Array), 클래스(Class), 인터페이스(interface), 열거형(Enum)
Java 프로그램에서 사용하는 메모리 영역
- 메소드 영역(Method Area), 힙 영역(Heap Area), 스택 영역(Stack Area)
- 메소드 영역: 클래스 파일(XXX.class)에 선언된 Java 자료형(클래스, 인터페이스, 열거형)을 읽어 저장하기 위한 영역
- 힙 영역(Heap Area): 배열 또는 객체를 생성하여 저장하기 위한 영역 - new 연산자를 사용하여 메모리 할당
=> 메모리에 이름 부여가 불가능: 참조변수에 배열 또는 객체의 메모리 주소(HashCode)를 저장하여 참조
- 스택 영역: 지역변수(참조변수 포함)를 생성하여 값 또는 메모리 주소를 저장하기 위한 영역
배열(Array)
- 동일한 자료형의 값을 여러개 저장하기 위한 메모리를 할당받을 수 있는 자료형(참조형)
- 일괄처리를 목적으로 사용하는 자료형
- 1차원 배열과 다차원 배열(2차원 배열, 3차원 배열)
- 1차원 배열: 다수의 값을 저장하기 위한 자료형
- 다차원 배열: 다수의 배열을 저장하기 위한 자료형
- 1차원 배열을 생성하여 참조변수에 생성된 배열의 메모리 주소(HashCode) 저장
- 형식) 자료형[ ] 참조변수 = new 자료형[갯수]
- new 자료형[갯수]: 자료형의 값을 갯수만큼 저장 가능한 메모리 할당
- 자료형[ ] 참조변수: 다수의 값이 저장된 1차원 배열의 메모리 주소를 저장하기 위한 참조변수
- 1차원 배열에서 값을 구분하여 저장하기 위한 메모리 공간을 요소(Element)로 표현
- 배열의 요소는 Index 0 부터 1씩 증가되는 정수값을 사용하여 구분
- 생성된 배열의 요소에는 기본값(숫자형: 0, 논리형: false, 참조형: null) 저장
int[] numArr = new int[3];
System.out.println("numArr = " + numArr);
System.out.println("=====================================");
System.out.println("numArr[0] = " + numArr[0]);
System.out.println("numArr[1] = " + numArr[1]);
System.out.println("numArr[2] = " + numArr[2]);
System.out.println("=====================================");
System.out.println("numArr.length = " + numArr.length);
System.out.println("=====================================");
int index = 0;
numArr[index] = 10;
numArr[index + 1] = 20;
numArr[index + 2] = 30;
for (int i = 0; i < numArr.length; i++) {
System.out.println("numArr[" + i + "] = " + numArr[i]);
}
- 배열 생성시 배열 요소에 원하는 초기값 저장 가능
- 형식) 자료형[ ] 참조변수 = new 자료형[ ]{초기값, 초기값, ...}
- 블럭 내부에 나열된 초기값의 갯수와 동일한 갯우의 요소를 가진 배열이 생성
int[] su1Arr = new int[]{10, 20, 30};
System.out.println("su1Arr[0] = " + su1Arr[0]);
System.out.println("su1Arr[1] = " + su1Arr[1]);
System.out.println("su1Arr[2] = " + su1Arr[2]);
- new 연산자와 자료형을 사용하지 않고 블럭 내부에 값을 나열하여 배열 생성 가능
- 형식) 자료형[ ] 참조변수 = {초기값, 초기값, ...};
int[] su2Arr = {10, 20, 30};
이런 것도 있다는 것만 알아두기
- Java 언어는 배열을 일괄처리하기 위해 향상된 for 구문을 제공
- 형식) for(자료형 변수명 : 참조변수) {명령; 명령;...}
- 참조변수에 저장된 메모리 주소로 참조하는 배열의 요소값을 커서(Cursor) 차례대로 하나씩 제공받아 변수에 저장하여 일괄처리하는 반복문
- 배열의 모든 요소값을 제공받은 후 반복문 종료
- 배열 요소의 계산, 출력에 대한 일괄처리시 사용
for (int number : su2Arr) {
System.out.println(number + "\t");
}