개발일지

[JAVA] 참조 타입 reference type 본문

JAVA

[JAVA] 참조 타입 reference type

강강강 2022. 3. 3. 08:43

자바의 데이터 타입에는 크게 원시타입(primitive type), 참조타입(reference type)이 있다.

 

오늘 이야기 해볼건 참조타입!!

 

원시타입 간단하게 얘기하고 넘어가자면, 원시타입은 byte, char, short, int, long, float, double, boolean.. 을 이용해서 선언해 실제값을 변수 안에 저장한다.

int a = 5;
double b = 100.5;

 

참조 타입은 배열, 열거, 클래스, 인터페이스를 이용해 선언된 변수고 메모리의 번지를 값으로 갖는다. 번지틑 통해 참조한다는 뜻에서 참조타입이라고 부른다. 

String c = "kang";
String d = "kangkang";

 

자바의 변수는 스택영역에 생성되고 객체는 힙 영역에 생성된다. 

 

위에 선언된 변수 a,b 는 직접 값을 저장하고 있지만 String 클래스 변수인 c, d 는 힙 영역의 String 객체 주소 값을 가지고 있다. 주소를 통해 객체를 참조한다는 뜻에서 String 클래스 변수를 참조 타입 변수라고 한다. 

 

 

여기서 힙 Heap 영역에 대해 알아보자면, 

힙 영역은 객체와 배열이 생성되는 영역이다. 힙 영역에 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 

참조하는 변수나 필드가 없다면 의미없는 객체가 되기때문에 이것을 쓰레기로 취급하고 GC를 실행시켜 쓰레기 객체를 힙 영역에서 자동으로 제거한다. 

 

'JAVA' 카테고리의 다른 글

[이것이 자바다] 정적 멤버와 static  (0) 2022.12.05
코틀린[Kotlin], 정말 자바[JAVA]와 100% 호환되나?  (0) 2022.11.04
[JAVA] 자바 가상 기계 JVM  (0) 2021.12.14
[JAVA] StringBuilder  (0) 2021.12.07
JAVA 언어 특징  (0) 2021.11.22