Chapter 05. 참조 타입
학습목표
기본 타입과 달리 객체를 참조하는 참조 타입(배열, 열거, 문자열)의 특성을 이해합니다.
목차
5.1 데이터 타입 분류
자바의 데이터 타입은 크게 기본 타입primitive type과 참조 타입reference type으로 분류된다. 2장에서 기본 타입에 대해서 알아보았으니, 이번 장에서는 참조 타입에 대해 알아보자. 참조 타입이란 객체object의 번지를 참조하는 타입으로 배열, 열거…
5.2 메모리 사용 영역
자바에서 사용하는 메모리 영역에 대해 간단히 알아보자. java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역Runtime Data Area을 다음과 같이 구분해서 사용한다. 메모리 영역Runtime Data Area 구조 graph TD sub…
5.3 참조 타입 변수의 ==, != 연산
==, != 연산자는 변수의 값이 같은지, 아닌지를 조사한다. 참조 타입 변수의 값은 객체의 번지이므로 참조 타입 변수의 ==, != 연산자는 번지를 비교하는 것이 된다. 번지가 같다면 동일한 객체를 참조하는 것이고, 다르다면 다른 객체를 참조하는 것이다. graph…
5.4 null과 NullPointerException
참조 타입 변수는 아직 번지를 저장하고 있지 않다는 뜻으로 null널 값을 가질 수 있다. null도 초기값으로 사용할 수 있기 때문에 null로 초기화된 참조 변수는 스택 영역에 생성된다. String refVar1 = “자바”; String refVar2 = nul…
5.5 문자열(String) 타입
자바의 문자열은 String 객체로 생성된다. 다음은 두 개의 String 변수 name과 hobby를 선언하고 문자열 리터럴을 대입한 것이다. name 변수와 hobby 변수에 문자열 리터럴이 대입되면 문자열은 String 객체로 생성되고, 객체의 번지가 각각 대입된…
5.6 배열(Array) 타입
변수는 하나의 값만 저장할 수 있다. 따라서 저장해야 할 값의 수가 많아지면 그만큼 많은 변수가 필요하다. 예를 들어 학생 30명의 성적을 저장하고 평균값을 구한다고 가정해 보자. 먼저 학생 30명의 성적을 저장하기 위해 변수 30개를 선언해야 한다. int score…
5.7 다차원 배열
배열 항목에는 또 다른 배열이 대입될 수 있는데, 이러한 배열을 다차원 배열이라고 부른다. 다음은 2차원과 3차원 배열의 모양을 보여 준다. // 2차원 배열 int scores = new int23; graph TD subgraph Stack 스택 영역 scoress…
5.8 객체를 참조하는 배열
기본 타입byte, char, short, int, long, float, double, boolean 배열은 각 항목에 값을 직접 저장하지만, 참조 타입클래스, 인터페이스 배열은 각 항목에 객체의 번지를 저장한다. 다음과 같이 String 타입의 배열을 생성하고, 각…
5.9 배열 복사
배열은 한 번 생성하면 길이를 변경할 수 없다. 더 많은 저장 공간이 필요하다면 더 큰 길이의 배열을 새로 만들고 이전 배열로부터 항목들을 복사해야 한다. 예를 들어 길이 3인 배열의 항목을 길이 5인 배열로 다음과 같이 복사할 수 있다. 가장 기본적인 복사 방법은 f…
5.10 배열 항목 반복을 위한 향상된 for 문
자바는 배열 및 컬렉션을 좀 더 쉽게 처리할 목적으로 다음과 같은 for 문을 제공한다. 카운터 변수와 증감식을 사용하지 않고, 항목의 개수만큼 반복한 후 자동으로 for 문을 빠져나간다. for 타입 변수 : 배열 { 실행문; } for 문이 실행되면 배열에서 가…
5.11 main() 메소드의 String[] 매개변수 용도
자바 프로그램을 실행하기 위해 지금까지 main 메소드를 작성했는데, 여기에서 문자열 배열 형태인 String args 매개변수가 왜 필요한지 알아보자. 윈도우의 명령 프롬프트나 맥OS의 터미널에서 프로그램을 실행할 때는 요구하는 값이 있을 수 있다. 예를 들어 두 수…
5.12 열거(Enum) 타입
데이터 중에는 몇 가지로 한정된 값을 갖는 경우가 있다. 예를 들어 요일은 월, 화, 수, 목, 금, 토, 일이라는 7개의 값을, 계절은 봄, 여름, 가을, 겨울이라는 4개의 값을 갖는다. 이와 같이 한정된 값을 갖는 타입을 열거 타입enumeration type이라고…