본문 바로가기
Java

[Java] 기본타입 vs 참조타입

by 태크민 2024. 6. 10.

기본 타입 vs. 참조 타입

자바의 데이터 타입에는 크게 기본 타입과 참조 타입이 있다.

 

기본 타입 (primitive type)

정수 타입, 실수 타입, 논리 타입
정수, 실수, 문자, 논리 리터럴을 저장하는 타입이다.
기본 타입은 변수에 실제 값(리터럴)을 저장한다.

int age = 24;

 

참조 타입 (reference type)

배열, 열거, 클래스, 인터페이스
객체(Object)의 번지를 참조하는 타입이다.
참조 타입은 변수에 객체의 번지(객체가 생성될 때 갖는 주소값)를 저장한다.
변수는 번지를 통해 객체를 참조한다.

String hobby = "공부";

 

차이점

모든 변수는 스택 영역에 저장된다.
단, 타입에 따라 데이터가 생성되고, 저장되는 위치는 다르다.


◾️ 기본 타입 변수
: 스택 영역에 변수가 생성되고, 변수에는 리터럴 값이 그대로 저장된다.

 

◾️ 참조 타입 변수
: 문자열 또는 배열을 저장하면 힙 영역(메모리 영역)에 객체를 생성한다.
: 변수(스택 영역)에는 힙 영역에 생성된 객체의 번지가 저장되며, 객체(힙 영역)안에는 문자열 또는 배열이 저장된다.
: 스택 영역에 저장된 변수는 번지를 참조하여 객체의 값을 꺼내올 수 있다.

자바에서의 문자열은 값이 아닌, String 객체이다.



'Java' 카테고리의 다른 글

[Java] Weak Refrence란?  (0) 2024.12.17
[Java] static 블록과 생성자  (1) 2024.12.14
[Java] 추상 클래스 vs 인터페이스  (0) 2024.06.10
[Java] 오버라이딩 vs 오버로딩  (0) 2024.06.10
[Java] JVM 이란?  (1) 2024.06.04