데이터 타입(data typte) |
||
기본타입(primitive type) |
참조타입 | |
정수타입 |
배열타입 |
|
실수타입 float double |
||
논리타입 boolean |
기본 타입과 참조 타입
기본타입 : byte, char, short, int, long, float, double boolean 변수는 실제 값을 변수 안에 저장한다.
참조타입 : 배열, 열거, 클래스, 인터페이스 변수는 메모리의 번지를 변수 안에 저장한다.
번지를 통해 객체를 참조한다는 뜻에서 참조 타입 이라고 한다.
메모리 사용 영역
JVM(JAVA Virtual Machine)
메소드 영역(Method Area)
JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역
사용되는 클래스들을 클래스 로더로 읽어 클래스별로 정적 필드(static field) 와 상수(constant), 메소드 코드,
생성자 코드(constructor) 등을 분류해서 저장
힙 영역(Heap Area)
객체와 배열이 생성되는 영역
여기에 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조
만일 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 JVM이 이것을 쓰레기 수집기(Garbage Collector)를
실행시켜 자동으로 제거
JVM 스택 영역
메소드를 호출할 때마다 프레임(Frame)을 추가(push)하고 메소드가 종료되면 해당 프레임을 제거(pop)하는 동작을 수행
프레임 내부에는 로컬 변수 스택이 있는데, 기본 타입 변수와 참조 타입 변수가 추가(push)되거나 제거(pop)됨
스택 영역에 변수가 생성되는 시점은 초기화가 될 때, 즉 최초로 변수에값이 저장될 때
변수는 선언된 블록 안에서만 스택에 존재하고 블록을 벗어나면 스택에서 제거
'이공계전문기술연수 > Java' 카테고리의 다른 글
<이공계전문기술연수> 15. Java 배열(2) (복사/버블정렬/로또/다차원) (0) | 2019.08.15 |
---|---|
<이공계전문기술연수> 14. Java 배열(1) (0) | 2019.08.15 |
<이공계전문기술연수> 12. Java 반복문: while문 / break문 (0) | 2019.08.13 |
<이공계전문기술연수> 11. Java 반복문: for문 // Math.random() (0) | 2019.08.13 |
<이공계전문기술연수> 10. Java 조건문 switch문 (0) | 2019.08.11 |