JRE
: JDK 실행환경 (JVM 내포)
1차 컴파일 된 bytecode
(.class)를 자신의 OS에 맞게 한번 더(2차) 컴파일
하여(.exe) 메모리에 로딩하여 실행
서로 다른 OS(Window, Mac, Linux)에서 만든 Java 프로그램이더라도 서로간에 실행 가능
이를 **OS의 독립적**
이라고 한다.(OS에 상관없이 실행) // Java의 장점
타 프로그램의 경우 종속적 형태이기 때문에 서로 다른 OS에서 만든 프로그램을 실행하기 어려움 (.exe 코드로 바로 생성되기 때문)
bytecode
-> 중간어 코드
소스코드
(.java)컴파일
(javac.exe)bytecode
(중간어코드)JDK
에서 처리 해준다Run을 하는 순간(실행) (java.exe)
-> RPC(원격프로세서호출) : JVM이 동작한다
Class Loader
Execute
서로 다른 형태의 데이터를 4가지 형태의 메모리 형태를 통해 구동
Method Area
Heap Area
(Generation)Stack Area
(Call Stack Frame Area)Runtime Constant Pool
(Literal Pool)ex.
쓰레기통 : 메모리
쓰레기 : 데이터
장롱 : 메모리
옷 : 데이터
쓰레기는 쓰레기통에, 옷은 장롱에 넣듯이