변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 그리고 이전에 본 Student student1
과 같이 객체가 저장된 메모리의 위치를 가리키는 참조값을 넣을 수 잇는 참조형으로 분류할 수 있다.
int
, long
, double
, boolean
처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다.Student student1
, int[] students
와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.기본형 변수에는 직접 사용할 수 있는 값이 들어있지만, 참조형 변수에는 위치(참조값)가 들어있다. 참조형 변수를 통해서 뭔가 하려면 결국 참조값을 통해 해당 위치로 이동해야 한다.
10
, 20
과 같이 실제 사용하는 값을 변수에 담을 수 있다. 그래서 해당 값을 바로 사용할 수 있다..
(dot)을 통해서 메모리 상에 생성된 객체를 찾아가야 사용할 수 있다.[]
를 통해서 메모리 상에 생성된 배열을 찾아가야 사용할 수 있다.기본형은 연산이 가능하지만 참조형은 연산이 불가능하다.
int a = 10, b = 20;
int sum = a + b;
기본형은 변수에 실제 사용하는 값이 담겨있다. 따라서 +
, -
와 같은 연산이 가능하다.
Student s1 = new Student();
Student s2 = new Student();
s1 + s2; // 오류 발생
참조형은 변수에 객체의 위치인 참조값이 들어있다. 참조값은 계산에 사용할 수 없다. 따라서 오류가 발생한다.
물론 다음과 같이 .
을 통해 객체의 기본형 멤버 변수에 접근한 경우에는 연산을 할 수 있다.
Student s1 = new Student();
s1.grade = 100;
Student s2 = new Student();
s2.grade = 90;
int sum = s1.grade + s2.grade; // 연산 가능
기본형을 제외한 나머지는 모두 참조형이다.
int
, long
, double
, boolean
모두 소문자로 시작한다.Student
자바에서
String
은 특별하다.String
은 사실은 클래스다. 따라서 참조형이다. 그런데 기본형처럼 문자 값을 바로 대입할 수 있다. 문자는 매우 자주 다루기 때문에 자바에서 특별하게 편의 기능을 제공한다.
💡 출처