IT/Java

[Java] 참조 타입

Huitopia 2024. 2. 26. 09:32
728x90

자바의 데이터는 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 분류된다.

참조 타입이란 객체(object)의 번지는 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입이 있다.기본 타입으로 선언된 변수는 값 자체를 저장하고 있지만, 참조 타입으로 선언된 변수는 객체가 생성된 메모리 번지를 저장한다.

변수들은 모두 스택(stack)이라는 메모리 영역에 생성되며, 기본 타입 변수는 직접 값을 저장한다. 그러나 참조 타입 변수는 힙 메모리 영역의 객체 번지를 저장하고 저장한 번지를 통해 객체를 참조한다.

 

 

메모리 사용 영역

java 명령어로 JVM이 구동되면 JVM은 운영체제에서 할당받은 메모리 영역(Running Data Area)을 구분해서 사용한다.

 

메소드(Method) 영역

메소드 영역은 바이트코드 파일을 읽은 내용이 저장되는 영역 클래스별로 상수, 정적 필드, 메소드 코드, 생성자 코드 등이 저장된다. 단순히 바이트 코드 파일의 내용이 저장되는 영역이다.

힙(Heap) 영역

힙 영역은 객체가 생성되는 영역이다. 객체의 번지는 메소드 영역과 스택 영역의 상수와 변수에서 참조할 수 있다.

스택(Stack) 영역

스택 영역은 메소드를 호출할 때마다 생성되는 프레임(Frame)이 저장되는 영역이다. 메소드 호출이 끝나면 프레임은 자동 제거가 되고, 프레임 내부에는 로컬 변수 스택이 있다. 이 영역에서 기본 타입 변수와 참조 타입 변수가 생성되고 제거된다.

 

 

 

728x90