728x90
반응형
자바는 기본형 타입과 참조형 타입 2종류가 존재한다.
기본형 타입
타입 | 할당되는 메모리 크기 | 기본값 | 데이터의 표현 범위 | |
정수형 | byte | 1 byte | 0 | -128 ~ 127 |
short | 2 byte | 0 | -32,768 ~ 32,767 | |
int(기본) | 4 byte | 0 | -2,147,483,648 ~ 2,147,483,647 | |
long | 8 byte | 0L | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
실수형 | float | 4 byte | 0.0F | (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 |
double(기본) | 8 byte | 0.0 | (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값 | |
논리형 | boolean | 1 byte | false | true, false |
문자형 | char | 2 byte(유니코드) | '\u0000' | 0 ~ 65,535 |
- 기본형 변수 안에는 직접 값들을 넣을 수 있다.
- 스택 영역에 저장된다.
참조형 타입
타입 | 기본값 | 할당되는 메모리 크기 |
배열(Array) | Null | Null |
열거(Enumeration) | Null | |
클래스(Class) | Null | |
인터페이스(Interface) | Null |
- 참조형 변수 안에는 값들을 저장하고 있는 객체를 주소를 가지고 있다.
스택(Stack)과 힙(Heap)
스택(Stack)
- 기본형 변수 저장 영역
- LIFO(Last In First Out) - 후입선출
- 정적
- Heap 영역의 Object 타입의 데이터들에 대한 참조 변수를 할당
- Thread 당 하나씩 할당되며 각 Thread에서 다른 Thread의 Stack 영역에는 접근 불가능
- 현재 변수 선언 블록 수행이 종료되면 자동으로 삭제
힙(Heap)
- 주로 생명 주기가 긴 데이터(모든 Object 타입 ex) Integer, String, ArrayList,…)들 저장 영역
- FIFO(First In First Out) - 선입선출
- 동적
- Stack 영역의 참조 변수가 가리키는 Object 타입의 데이터 할당
- 몇 개의 Thread가 존재하든 상관 없이 단 하나만 존재
- Garbage Collection: Heap에서 더 이상 사용하지 않는 불필요한 메모리를 Garbage라 부르며, JVM의 Garbage Collector에 의해 자동으로 회수되어 사용할 수 있는 메모리 공간을 늘리는 일
728x90
반응형
'언어(Language) > Java' 카테고리의 다른 글
[Java] 배열(Array) (0) | 2023.02.24 |
---|---|
[Java] 반복문(while, for) (0) | 2023.02.24 |
[Java] 조건문(if, else if, switch - case) (0) | 2023.02.24 |
[Java] 연산자들(대입, 부호, 산술, 복합, 대입, 증감연산자) (0) | 2023.02.24 |
[Java] 자바 프로그래밍 이란? (0) | 2023.02.23 |