我读到有关从需要澄清编译错误和运行时错误
Runtime vs Compile time和 How exactly does java compilation take place?
什么,我可以推断是,在编译过程中,编译器不运行时错误和编译错误由零检查逻辑,但只有语法和拼写错误错误,其中在运行时的逻辑被选中,这些是如何实现等..像师,内存不够的。
所以,如果我的理解是正确的,然后一个仅在编译阶段得到编译错误和运行时仅在执行程序错误..
例如让我考虑一个简单的程序
public class Try {
public static void main(String[] args) {
System.out.println("My first program");
}
}
现在,当我在这个阶段编译(即javac)如果有任何错误产生,那么这些错误称为编译错误,在此期间检查语法和错字错误。
并且在将字节码转换为本机/机器码(e.e java)的过程中产生的错误称为运行时错误,在此期间检查程序逻辑。
所以,只有在第二阶段(即将字节码转换为机器码)执行和运行时错误开始时,才会出现编译错误。
请纠正我,如果我的理解是错误的...
“仅在执行开始时编译错误” - 否 - 仅在编译时。运行时错误 - 不 - 不转换为机器代码 - 运行程序时出现逻辑错误 – Randy
编译器不仅仅是语法检查。例如,它执行类型检查,因此在执行之前发现许多逻辑错误。 – Ingo