Language/Java

Java 변수 기본형과 참조형

SambaLim 2019. 3. 17. 23:50
Java 변수 기본형과 참조형

기본형(primitive type) 변수

boolean, char, byte, short, int, long, float, double

실제 연산에 사용되는 것은 모두 기본형 변수입니다.

 

참조형(reference type) 변수

기본형 8가지를 제외한 나머지 타입

참조형 변수를 선언할 때는 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조형 변수의 타입이 됩니다. 따라서 새로운 클래스를 작성하는 것은 새로운 참조형 변수를 추가한다고 봐도 무방합니다.

Date today = new Date();

Date 클래스 타입의 참조형 변수 today를 선언한 것입니다.

참조형 변수는 null 또는 주소를 값으로 갖습니다.

연산자 new의 결과는 생성된 객체의 주소이다. 이 주소가 대입연산자 =에 의해서 참조형 변수 today에 저장되는 것입니다.

 

참조(reference)

참조와 참조형 변수는 다른 개념입니다.

참조는 참조형 변수가 아닌 참조값(reference value, 해쉬코드)입니다.

예를 들자면 A x = new A();의 경우 new가 반환한 참조(reference)는 new A();의 반환값이고, 참조형 변수(reference variable)는 x입니다.

 

참조(reference) & 참조형(reference type) 변수 예시

우선 People 클래스를 선언합니다.

public class People {
    public int height;
    public int age;
}

객체의 참조형 변수를 선언하는데, 메모리가 생성되기 전이기에 null로 초기화해줍니다.

People sungHo = null;
People chanHo = null;

System.out.println("People의 변수 sungHo의 값은 : " + sungHo);
System.out.println("People의 변수 chanHo의 값은 : " + chanHo);

new연산자를 사용하여 메모리를 생성합니다.

People sungHo = null;
People chanHo = null;

sungHo = new People();
chanHo = new People();

System.out.println("People의 변수 sungHo의 값은 : " + sungHo);
System.out.println("People의 변수 chanHo의 값은 : " + chanHo);

메모리가 생성되면 내부 인덱스 테이블에 주소를 매핑하는 참조값이 하나씩 만들어집니다.

이렇게 생성된 참조값이 참조형 변수sungHo와 chanHo에 할당됩니다.

 

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

객체지향 프로그래밍  (0) 2019.05.24
Java 형변환(Casting)이란  (0) 2019.03.19
Java serialVersionUID 사용이유  (0) 2019.03.09
Java String... 은 무엇인가?  (1) 2019.03.08
Java UUID 사용하기  (1) 2019.03.07