1. 자바 언어의 장점은 무엇인가요?
2. JVM(Java Virtual Machine)이 무엇인가요?
3. JIT 컴파일러란 무엇인가요?
4. JVM에서 사용할 수 있는 메모리 저장소는 어떤 게 있나요?
5. JVM, JRE, JDK의 차이점은 무엇인가요?
6. 스트링 풀(String Pool)이란 무엇인가요?
7. 예외 처리란 무엇인가요?
8. 컬렉션 프레임워크(Collection Framework)가 무엇인가요?
4. JVM에서 사용할 수 있는 메모리 저장소는 어떤 게 있나요?
JVM은 아래와 같이 몇 가지 메모리 저장소로 구성됩니다.
- 클래스(메소드) 영역(Class(Method) Area): 런타임 상수 풀, 필드, 메소드 데이터 등 모든 클래스의 클래스 수준 데이터와 메소드에 대한 코드가 저장됩니다.
- 힙(Heap): 개체가 생성되거나 개체가 저장됩니다. 런타임 중에 객체에 메모리를 할당하는 데 사용됩니다.
- 스택(Stack): 메소드에 대한 값을 반환하고 동적 연결을 수행하는 동안 필요한 데이터 및 부분 결과를 저장합니다.
- 프로그램 카운터 레지스터(Program Counter Register): 현재 실행 중인 JVM(Java Virtual Machine) 명령어의 주소를 저장합니다.
- 네이티브 메서드 스택(Native Method Stack): 애플리케이션에 사용되는 모든 네이티브 메서드를 저장합니다.