No, Java is not interpreted language. Java and all .NET languages are compiled languages, but the compilation is done into the
byte code (one byte code for Java machine, another for .NET CLR,
Common Language Runtime). In both variants, the byte code is translated to
machine code during run time, using
just-in-time compilation (JIT).
See:
http://en.wikipedia.org/wiki/Just-in-time_compilation[
^],
http://en.wikipedia.org/wiki/Bytecode[
^],
http://en.wikipedia.org/wiki/Managed_code[
^].
Strictly speaking, being interpreted or compiled language is not a characteristic of a language itself, as a language can be interpreted and compiled at the same time. It makes the last question not quite correct, as the whole picture is more complex that assumed by this question. Some languages are interpreted only, as they are designed the way making compilation impossible. Discussion of this topic would leads us well beyond quick questions and answers. Understanding and classification of different languages need some of real education and deep understanding of programming, not something that could be conducted as a set of basic facts.
—SA