概念:
编译型语言:把写好的程序预先翻译成机器能够执行二进制指令代码,然后直接运行 存在编译文件
解释型语言:写好的程序没有预先编译成指令,而是执行时编译一条执行一条 不存在编译文件
区别: 
编译型语言:执行速度快,效率高;依赖与编译器,跨平台性差。如 C++ DelPhi Pascal
解释型语言:执行速度慢,效率低; 依赖与解释器,跨平台性好  如 Java Basic
            (中间需要解释器解释之后才能运行,解释需要时间效率低)
编译语言在编译之后可以直接运行,而解释语言需要一个解释环境。
Java就稍微特殊一点 ,Java程序首先会被编译为class文件,然后JVM读入class文件逐条编译为机器指令执行。JVM是Java解释环境
(此处class文件并非机器码 只是二进制编码)
学习Java需要了解JIT技术
JIT:Java In Time Java及时编译器 (在需要的时候编译) 
    通过使用JIT技术 可以提高Java的运行速度 原理:
    在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,
    采用该JIT技术可以接近以前纯编译技术,效率自然也就高。
计算机并不能直接地接受和执行用编写的,在输入计算机时,通过"翻译程序"翻译成形式的目标程序,计算机才能识别和执行。这种"翻译"通常有两种方式,即编译方式和解释方式。编译方式是指利用事先编好的一个称为的程序,作为系统软件存放在计算机内,当用户将编写的输入计算机后,便把源程序整个地翻译成用表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。如PASCAL、FORTRAN、COBOL等执行编译方式;则以执行解释方式为主;而PASCAL、C语言是能书写的高级。 编译程序、解释程序、是3种语言处理程序。其区别主要为:(为低级服务)是将书写的源程序翻译成由机器指令和其息组成的目标程序。解释程序(为高级服务)直接执行源程序或源程序的内部形式,一般是读一句源程序,翻译一句,执行一句,不产生目标代码,如BASIC解释程序。编译程序(为高级服务)是将高级语言书写的源程序翻译成与之等价的低级语言的目标程序。编译程序与解释程序最大的区别之一在于前者生成目标代码,而后者不生成;此外,前者产生的目标代码的执行速度比解释程序的执行速度要快;后者好,适于初学者使用。用COBOL、FORTRAN等语言编写的程序考虑到执行速度一般都是编译执行。