JVM
- 어떤 침대에 깔아도 똑같이 편안하게 해주는 침대 메트리스의 토퍼같은 역할
- 어떤 운영체제에 상관없이 (리눅스, 윈도우, 맥 .. ) 자바를 실행시킬 수 있게 해주는 자바 가상 머신
- 가상머신 = 가상의 기기를 만들어 주는 것
- JVM을 통해 자바의 플랫폼 독립성이 보장되는 것!
Compile
1. 정적 컴파일 과정 : JAVA Compiler(javac)
- .java파일 코드를 .class(바이트코드)파일로 변환하는 변환기
.java 코드 : 사람이 이해할 수 있는 코드
.class 코드(바이트 코드) : 운영체제가 이해할 수 있는 코드, jvm에서 실행되기 위한 형태로 변환된 코드
2. 동적 컴파일 과정 : interpreter & JIT
- interpreter : 바이트코드를 한 줄씩 읽어서 실행
- JIT : 자주 실행되는 코드를 기계어로 변환하여 캐싱, 실행 속도를 향상함
메모리 : 운영체제로부터 jvm이 할당받은 데이터를 저장하는 영역
클래스 로더 :바이트 코드를 메모리 영역에 운반
가비지 컬랙터 :메모리에서 안 쓰는 데이터를 제거함
런타임 : 프로그램이 실행중인 상태
자바 개발 도구와 자바 실행 환경
- JDK(Java Development Kit) : 자바 개발 도구, 자바를 이용해 프로그램을 개발하는데 필요한 도구, 컴파일, 디버거 ,
- JAVA Compiler(javac) 가능!
- 디버깅 가능!
- JRE 가능!
- JRE(Java Runtime Environment)(jvm포함) : 자바 실행 환경, 자바 API, 클래스 로더 ,,
- 자바 실행 환경, jvm이므로 바이트코드(.class)파일만 실행 가능함
→ JDK는 JRE를 포함, JRE는 JVM을 포함
'JAVA' 카테고리의 다른 글
요리 레시피 메모장 만들기 / 배열, 입출력, 형변환 (0) | 2025.01.02 |
---|---|
JAVA의 형변환과 자료형타입 (0) | 2025.01.01 |
보너스 문제: 가위 바위 보 (0) | 2024.12.17 |
Lv3. 단어 맞추기 게임 (2) | 2024.12.16 |
Lv2. 스파르타 자판기 (3) | 2024.12.14 |