对于编译错误和运行错误,先说编译和运行两个概念

一、编译和运行

编译和运行过程:

java源代码→字节码→操作系统指令码

首先java源代码经过javac编译成字节码(JVM可识别的指令码),然后经过JVM转换成相应的操作系统指令码。操作系统便能执行源代码想要做的事。即源代码(.java文件)转换成字节码(.class文件)的过程是编译,字节码转换成操作系统指令码的过程称为运行阶段

二、区分编译错误和运行错误:

如果有eclipse这种类似软件(可以在软件上直接编译运行的),在敲代码的时候发现左侧的行数上显示了红色的叉叉,这时候所提示的便是你程序中的编译错误(语法错误),这种错误是不符合Java基本语法的错误
  当你写完程序,左侧没有一个红叉(没有语法错误)的时候,淡定的去点绿色按钮(Run)键进行运行时,控制台结果给了你一串带红色的解释,这时候就说明你的程序出现了运行错误。
  如果使用的是记事本一类,只能写代码的软件,则就在命令提示符(俗称cmd)中输入javac + 文件名.java 这条命令,如果出现了错误,则此时的错误就是编译错误,当编译通过,使用 java + 文件名 进行运行时,如果出现错误,则这时的错误就时运行错误。

三、编译错误和运行错误比较

1.编译错误一般指语法错误或者很明显的逻辑错误。

如:缺少分号,少写括号,表达式不完整,变量为初始化(未赋值),数据类型不匹配…

在eclipse往往会画红线;

2.运行错误是在没有编译错误的基础上运行后产生的错误。

如:空指针异常,除数为0,数组下标越界,数据库错误,文件不存在