Java source code is compiled down to bytecode, which is an intermediate language. Bytecode doesn’t run natively on your machine, though: the Java Virtual Machine (JVM) interprets it. So Java is compiled into bytecode, and bytecode is interpreted.
Incidentally, this is how C# works, too. C# code is compiled to the Common Language Interface (CLI), which the Common Language Runtime (CLR) interprets.
Java is both compiled and interpreted.
Java source code is compiled into the so-called Bytecode. The Bytecode is a pre-compiled, platform independent version of your program. The .class files can be used on any operating system.
When the Java application is started, the Bytecode is interpreted by the Java Virtual Mashine. Because the Bytecode is pre-compiled, Java does not have the disadvantages of classical interpreted languages, like BASIC.