编译错误一般是因为语法上有问题,程序在编译的时候就产生报错,不能生成 .class 文件,例如未定义变量、没有包含头文件等。此时的文件是放在磁盘上的。
运行错误一般是因为逻辑上有问题,程序可以通过编译,也就是可以生成 .class 文件,但是在运行的时候发生报错或不能得到预期的结果,例如数组越界、空指针等。这时的程序被加载到内存中。
编译阶段不给程序分配内存,只是生成可执行文件,运行阶段开始给程序分配内存。
编译错误一般是因为语法上有问题,程序在编译的时候就产生报错,不能生成 .class 文件,例如未定义变量、没有包含头文件等。此时的文件是放在磁盘上的。
运行错误一般是因为逻辑上有问题,程序可以通过编译,也就是可以生成 .class 文件,但是在运行的时候发生报错或不能得到预期的结果,例如数组越界、空指针等。这时的程序被加载到内存中。
编译阶段不给程序分配内存,只是生成可执行文件,运行阶段开始给程序分配内存。