728x90
데이터 타입은 크게 기본 타입(primitive type)과 참조 타입(reference type)이 있다.
★ 기본 타입(primitive type)
1. 정수 타입 (byte, char, short, int, long)
2. 실수 타입 (float, double)
3. 논리 타입 (boolean)
★ 참조 타입(reference type)
- 배열타입, 열거타입, 클래스, 인터페이스
※ String은 배열타입이다.
메모리 사용 영역
Static area
- 전역변수와 정적 멤버변수(static)는 Static에 저장
- Static영역의 데이터는 프로그램의 시작부터 종료가 될 때까지 메모리에 유지
Stack area
- 기본 자료형(byte, int, long, double, boolean)에 해당하는 지역변수의 데이터 값이 저장되는 공간
- 해당 메소드가 호출될 때 메모리에서 할당되고 종료되면 메모리가 해제됨
- 스레드별로 생성되며, 스레드가 시작하면 할당됨
- 메소드 호출될 때 Stack에 추가됨 Push
- 메소드가 종료되면 Frame 제거 Pop
Heap area
- 참조 타입의 변수, 객체, 배열등은 Heap 영역의 공간에 실제 데이터가 저장된다. 모든 스레드가 공유 가능한 영역
- 참조형 변수는(객체) Stack 영역에서 실제 데이터가 있는 Heap의 영역의 참조 값을 New 연산자를 통행 리턴 받음.
- 사용되지 않는 객체는 garbege collerctor가 자동 제거
728x90
'java' 카테고리의 다른 글
연산자(Operator) (0) | 2022.10.26 |
---|---|
추상 클래스(abstract class) (0) | 2022.10.26 |
상속(Inheritance) (0) | 2022.10.26 |
접근 제어자 (0) | 2022.10.26 |