Why we do we say that Java is a compiled and interpreted language?
What is the advantage of this (being compiled and interpreted)?
This is a long topic and you'd better read about JIT. In short, Java is compiled to bytecode, and the bytecode is later compiled (in the JVM) to machine code.