JIT is a "Just In Time" compilation, mostly on-the-fly compilation.
Hotspot is a concept inside the JVM where it only compiles the code used. That is, the hot snippets of code are used over and over again.
The JVM keeps track of usage, and when something becomes popular enough, it queues this code for compilation, continuing to interpret the code.
When the JIT ends, it swaps the interpreted bits with the compiled bits.
This is why the JVM needs to βwarm upβ for benchmarking, etc.
The -server and -client options for the Sun / Oracle JVM affect this behavior with respect to how aggressive they are when performing JIT work.
source share