자바 언어의 특징
- 단순하고 객체지향이며, 친숙 해야한다.
- 견고하고 보안상 안전하다.
- 아키텍처에 중립적이어야 하며 포터블(휴대가능) 해야한다.
- 높은 성능을 제공해야한다.
- 인터프리터 언어이며, 쓰레드를 제공하고, 동적인 언어 이다.
JIT 컴파일러
- JIT = 동적 변환
- 만든 이유 : 프로그램 실행을빠르게 하기 위해서다. 실행시 적용되는 기술
- 인터프리트 방식 + 정적 컴파일 방식 = JIT
- 인터프리트 방식은 프로그램 실행 할 때 마다 컴퓨터가 알아들을수 있는 언어로 변환하는 작업을 한다.
- 정적 컴파일 형식은 실행하기 전에 컴퓨터가 알아 들을 수 있는 언어로 변환하는 작업을 미리실행한다.
- 변환작업은 인터프리터에 의해서 지속적으로 수행 필요한 코드의 정보는 메모리에 올려두었다가 재사용하게 된다.
- javac 컴파일러는 바이트 코드를 만드는 작업 일 뿐.
- 컴퓨터가 알아 먹을 수 있도록 바이트 코드를 변환 하는 작업을 JIT 컴파일러에서 한다.
HotSpot 컴파일러
- 단일 코어 시절, 어플리케이션 시작 시간을 빠르게 하고, 적은 메모리를 점유하도록 만들어진 Hotspot 클라이언트 컴파일러가 있다.
- 자바가 실행 될때, 기본적으로 듀얼 코어, 2GB이상의 메모리 사양을 가진 컴퓨터라면 서버로 인식되도록 설정되어있다. (윈도우는 기본적으로 클라이언트 컴파일러가 사용된다.)
- 직접적으로 클라이언트, 서버 옵션을 JVM에게 알려줄 수 있다.
java -server -Xms512m Calculator