JIT 컴파일
또는 동적 번역
, Dynamic Translation
은 프로그램을 실행하는 시점에 기계어로 번역하는 컴파일 기법이다.
또 다른 방식으로 인터프리트
방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하는 기법이다.
프로그램을 개발하다 보면 유효하지 않은 메모리인 Garbage
가 발생하게 된다. C언어는 free()
라는 함수를 통해 직접 메모리를 해제해주어야 한다. 하지만 Java
나 Kotlin
에서는 JVM
의 Garbage Collector
가 주기적으로 불필요한 메모리를 알아서 정리해준다.
대신 Java
에서 명시적으로 불필요한 데이터를 표현하기 위해서 일반적으로 null
을 선언해준다.
물론
Java
에서도System.gc()
를 이용해 호출할 수 있지만, 해당 메소드는 시스템의 성능에 매우 큰 영향을 미치므로 절대 호출해서는 안된다.