This is the compiler from Scala to Java bytecode. It does type checking, some optimizations (like inlining, removing some instances of boxing, or converting tail-recursive functions to loops), and converts all Scala-specific features to some Java constructs (e.g. traits become interfaces, classes etc.; lazy values become methods and accompanying values; lambdas get lifted to the class they are defined in).
The JIT works on Java bytecode. Java also has a similar compiler (javac) from Java -> bytecode.
The JIT works on Java bytecode. Java also has a similar compiler (javac) from Java -> bytecode.