在java中,源程序能通过编译,能说明什么问题?

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:53:41
我知道,编译通过是说明语法没错,但我现在想问一下:什么是java的语法???
在整数/0时,也是java所不允许的,但是在编译时,却可以通过,
难道这个除数不为0,不是语法???

通过编译只能说明当前没有语法错误,例如String s = null;就是个合乎语法的写法,但是如果这样 Sring s = null;就会出现编译错误,因为没有Sring这个类型。
通过编译的程序不一定会正确的运行,因为可能存在逻辑错误,逻辑错误就是诸如数组越界这类的错误。
不知道这么说楼主明白了没~

除数不为0不是语法错误,首先来看,1/0这个式子是没有错的,错的是结果,因为0不能作为除数,所以这是逻辑错误。

String s = null;
s.equals("") ;

这两句 编译会通过 运行会出错

有一种error叫compile time error,还有一种叫run time error

除数是否为零不属于语法范围,是run time error,只有在运行的时候java才知道除数为零

能编译,说明语法没问题,但是运行时候可能会出现其他错误,楼上的,数组越界,编译就不能通过了吧

在整数/0时在运行时会产生异常

编译通过,表明没有语法问题,但不表明有运行时问题。