컴파일러 언어 vs 인터프리터 언어
컴파일러 언어
- 개발자가 작성한 전체코드를 기계어로 변환함(기계어로 된 실행파일을 생성한다)
- 전체 코드를 한번에 번역하므로 실행속도가 빠르다
물론 초기 스캔시간이 오래 걸리지만 한번 실행 파일이 만들어지면 빠르다
- C, c++, java(전체를 기계어로 변환하는건 컴파일러 언어의 특징을 가지고 있지만
jvm 내부에서 동작하는 방식은 인터프리터의 특징으로 동작하므로 인터프리터와 컴파
일러의 특징을 모두 갖춘 하이브리드 언어라고 보는게 맞음)
- java, c, c++, c#
인터프리터 언어
- 프로그램 실행시 인터프리터가 한번에 한 문장씩 번역한다
- 한번에 한문장씩 번역후 실행시키므로 실행시간이 컴파일러 언어에 비해 느리다
- python, php, javascript, ruby
자바 실행과정
1. 개발자가 자바 코드를 작성함 (.java)
2. 자바 컴파일러가 자바 소스파일을 컴파일한다 컴파일을 하여 나오는
파일은 자바 바이트 코드(.class) 파일로 자바 가상머신(jvm)이 읽을 수 있는
코드이다
3. 컴파일된 바이트 코드를 jvm의 클래스로더에게 전달한다
4. 클래스로더는 동적로딩을 통해 필요한 클래스드를 jvm의 메모리에 올림
5. jvm 메모리에 올라온 바이트 코드들은 명령 단위로 하나씩 가져와서
읽고 실행한다
* 지금 현재 이 내용은 차후 pdf 로 정리해서 드리도록 하겠습니다(월요일까지)