1. JVM이란 무엇인가
2. 바이트코드란 무엇인가
3. JIT 컴파일러란 무엇이며 어떻게 동작하는지
4. JVM 구성 요소
5. JDK와 JRE의 차이
6. 프리미티브 타입 종류와 값의 범위 그리고 기본 값
7. 프리미티브 타입과 레퍼런스 타입
8. 1차 및 2차 배열 선언시 자바에선 어떤일이 벌어지는지(영역, 포인터, 주소 등)
1주차의 1~5 내용은 이전 블로그에 존재한다.
https://abbiddo.tistory.com/86
6. 프리미티브 타입 종류와 값의 범위, 기본 값
타입 종류 | 값의 범위 | 기본 값 |
boolean (논리) | true or false | false |
char (문자) | 0 ~ 65,535 | '\u0000' |
byte (정수) | -128 ~ 127 | 0 |
short (정수) | -32,768 ~ 32,767 | 0 |
int (정수) | -2,147,483,648 ~ 2,147,483,647 | 0 |
long (정수) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0L |
float (실수) | 1.4E-45 ~ 3.4028235E38 | 0.0f |
double (실수) | 4.9E-324 ~ 1.7976931348623157E308 | 0.0 |
7. 프리미티브 타입과 레퍼런스 타입
Primitive Type (원시 타입)
- 실제 데이터 값을 저장하는 타입이다.
- 기본 값이 존재하므로 null이 존재하지 않는다.
- 값이 할당되면 JVM의 Runtime Data Area - Stack에 값이 저장된다.
Reference Type (참조 타입)
- class, interface, enum, array, String 등이 있다.
- Primitive Type을 제외한 모든 타입은 참조형 타입이다.
- 빈 객체를 의미하는 null이 존재한다.
- 값이 저장되어 있는 곳의 주소값을 저장하는 공간으로 Heap에 저장된다.
8. 1차 및 2차 배열 선언시 영역, 포인터, 주소
class ArrayDeclaration{
public static void main(String[] args){
//1차원 배열 선언
int[] Array1EX1 = {0, 1, 2, 3, 4};
int[] Array1EX2 = new int[5];
//2차원 배열 선언
int[][] Array2EX1 = {{0, 1}, {2, 3}, {4, 5}};
int[][] Array2EX2 = new int[3][2];
}
}
1차원 배열
- Runtime Stack에는 Array1EX1의 주소가 저장되고, Heap 영역에 실제 배열구조가 저장된다.
2차원 배열
- Runtime Stack에는 Array2EX1의 주소가 저장된다.
- Heap 영역에는 실제 값이 들어있는 요소들과 주소 값들이 들어있는 요소들이 존재한다.
'Programming > JAVA' 카테고리의 다른 글
Te JAVA (2) - JUnit5 (0) | 2023.10.02 |
---|---|
Te JAVA (2) - Java 13. switch 연산자 (0) | 2023.10.01 |
Te JAVA (2) - 삼항 연산자 (0) | 2023.10.01 |
Te JAVA (2) - 람다 (lambda) (0) | 2023.10.01 |
Te JAVA (1) - JVM (0) | 2023.09.26 |