자바의 Memory Structure(메모리 구조)와 Wrapper Class에 대해 알아봅니다.
Memory Structure 메모리 구조
static
프로그램이 시작될 때 메모리가 할당되어 프로그램이 종료될 때까지 남아있는 영역입니다.
전역변수를 static으로 많이 사용할 경우, 메모리 부족 현상이 발생할 수 있습니다.
stack
지역변수(파라미터, 블록 등)의 데이터들이 저장되는 공간입니다.
특정 메소드가 호출될 때 메모리가 할당되어 메소드가 종료되면 메모리가 반환됩니다.
heap
참조형 데이터 타입(객체, 배열 등)들은 heap 영역에 저장됩니다.
new 키워드로 객체 생성시 실제 데이터가 저장되는 heap 영역의 주소(참조값, Reference Value)를 반환합니다.
참조형 변수들은 heap 영역의 주소를 가지고 있습니다.
지역변수들은 stack 영역에 저장되므로, 참조형 데이터들의 heap 영역 상의 주소를 stack 영역에 저장하게 되죠.
Wrapper Class 랩퍼 클래스
기본 데이터 타입(boolean, byte, short, int, long, float, double, char)을 객체화한 클래스들입니다.
Wrapper Class들은 클래스이므로 첫 문자가 대문자이며, 데이터 타입별 연산인 메소드들을 가지고 있습니다.
데이터를 객체에 저장하므로 객체지향의 특성인 캡슐화를 구현하여 데이터를 보호할 수 있습니다.
예를 들면...
기본 데이터 타입 | Wrapper Class |
int | Integer |
double | Double |
boolean | Boolean |
❗String 데이터 타입은 기본 데이터 타입이 아니지만 워낙 자주 사용되어 기본 데이터 타입처럼 사용합니다.
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA] Thread(스레드)를 활용한 간단한 Counter(카운터) 프로그램 만들기 with IntelliJ (0) | 2024.04.06 |
---|---|
[JAVA] Thread(스레드)와 State(상태) (1) | 2024.04.05 |
[JAVA] 간단한 console 프로젝트 정수 계산기 프로그램 만들기 with IntelliJ (13) | 2024.04.03 |
[JAVA] method Overloading vs. Overriding(메소드 오버로딩 vs. 오버라이딩) (1) | 2024.04.02 |
[JAVA] Class Inheritance 클래스 상속 (27) | 2024.04.01 |