jvm2 자바의 compile 과정 사전 지식 인터프리터와 컴파일러의 차이 인터프리터 컴파일러 한문장씩 읽고 바로 기계어 변환 후 실행 모든 소스코드를 기계어 파일로 변환하고 실행. python,php.... c,c++,java... 한줄씩 읽어 기계어로 변환 후 실행하는 면에서 빨라보이지만 만들어둔 실행 파일만 읽으면 되므로 실행속도 더 빠르다. JVM 구조 전체적인 흐름 : .java -> (javaC) ->.class (JVM이 이해할 수 있는 중간 언어)(바이트코드)-> 기계어 변환 요약 : class Loader를 통해 바이트 코드를 JVM내로 로드하고 Runtime data Area로 거쳐 Execution Engine으로 들어가 바이트 코드로 변환. (2가지 방식 JIT,Interpreter) Compile 과정 .java를 .. JAVA 2021. 4. 4. JVM 구조와 버전에 따른 변경 JVM 구조 Class Loader .java -(javac가 컴파일)-> .class - (jvm) -> Runtime Data Area 로 적재. Execution Engine classLoader에 의해 메모리에 적재된 클래스(바이트콛)들을 기계어로 변경하여 명령어 단위로 실행하는 것. 명령어 실행 방식 2가지 인터프리터 : 명령어를 하나씩 수행.(기본적 방식,전체 수행 느림 하지만 명령어 하나의 동작 빠름) Just In Time compiler(JIT) : 바이트 코드 -> 네이티브코드로 변환 후 인터프리팅하지 않으며 네이티브 코드로 실행 (실행 동작은 빠르지만 컴파일하는데 시간이 많이 소요.) Garbage Collector GC는 Heap메모리 영역에 생성된 객체들 중 참조되지 않는 객체들을.. JAVA 2021. 3. 28. 이전 1 다음