Java语言是编译性-解释性语言,因为其同时具备编译性和解释性两种特性;java文件先编译成与平台无关的.class的字节码文件,然后.class的字节码文件既可以在Windows平台上的java虚拟机(JVM)上进行解释运行,也可以在Linux平台上的JVM上解释运行;而JVM的翻译过程时解释性的,JVM从.class的字节码文件中读出一条指令,翻译一条指令,然后执行一条指令,这个过程就称为java的解释执行;
一个java源文件可以包含多个类,但是最多只能有一个是public类定义,如果Java源文件里包含 public类定义,则该源文件的文件名必须与这个 public类的类名相同。