看下图:java
编译期就是将咱们写的java源代码交给编译器执行的过程, 起翻译的做用. 主要是对java源代码的语法进行检查, 若是没有语法错误, 就将源代码编译成字节码文件(.class文件)spa
运行期则是将字节码文件(.class)加载到内存中交给java虚拟机执行, 直到程序执行结束的过程, 该过程主要是对程序的逻辑错误进行检查, 若是没有逻辑错误, 程序的功能就能够实现, 输出结果翻译
编译错误通常指语法错误或者很明显的逻辑错误, 如 : 缺乏分号, 少写括号, 关键字书写错误等...
运行错误是在没有编译错误的基础上运行后产生的逻辑错误, 如 : 空指针异常, 除数为0 , 越界访问等...指针