전에 다룬 기본형 변수는 데이터 값 그 자체를 저장하는 변수였습니다.
참조형 변수
는 객체의 주소를 저장하는 타입으로 데이터를 직접 저장하는 것이 아니라, 데이터가 저장된 객체의 주소에 대한 정보를 갖고 있습니다.
int n1 = 1;
double n2 = 1.0; //각각 1과 1.0을 직접 저장
String str = "1"; //str이 "1"이라는 데이터가 저장된 String객체의 주소를 저장
참조형 변수에는 배열(Array), 문자열(String), 열거(Enum), 클래스, 인터페이스
가 있습니다. 이들에 대한 자세한 내용은 추후에 각기 다른 포스트로 소개해드리겠습니다.
등가 비교 연산자인 ==, !=
는 변수가 동일한지 아닌지를 판별하는 연산자입니다. 기본형 변수같은 경우 변수에 저장된 값에 따라 결과를 반환하지만 참조형에서는 조금 다른 동작을 보여줍니다.
참조형 변수는 객체의 주소를 저장을 하기 때문에 단순히 값이 같다고 해서 무조건 일치하다고 보지 않습니다. 따라서 참조형 변수에서 ==
로 같다를 판정하기 위해서는 같은 객체를 가리키는 동시에 값도 같아야 같다고 판정하게 됩니다.
null
은 값이 없음
을 의미하는 컴퓨터 프로그래밍 용어입니다. 그리고 참조형 변수에서는 null
을 값으로 가질 수 있습니다. 참조형 변수의 초기화 값으로 null
을 사용할 수도 있습니다.
String str = null;
만약, null
로 초기화된 참조형 변수를 참조하려고 한다면 NullPointException
이라는 오류가 발생하게 됩니다.