在Java中,为什么编译器不会简单地假设未初始化的变量应该具有0作为其值,就像C一样?这只是一般的BetterPractice,还是存在特定于Java的另一个原因?
答案 0 :(得分:2)
因为代码使用了尚未初始化的变量,导致不可预测或意外的结果。
我猜Java设计人员在使用C编程时必须遇到很多问题,如卡住循环,因此,当他们开发java时,他们决定摆脱这个问题。这就是为什么我们称java为一种强大的语言。
并且分配变量初始值并不总是很好。例如
int i; // uninitialized variable ,suppose it is initialize to 0 by compiler
int j=5/i; // run time error
答案 1 :(得分:1)
对于大多数在将变量分配给任何变量之前使用变量的情况是错误的,并且通过让编译器明确地将其视为错误,它有助于在编程过程的早期捕获这些错误。
说未初始化的变量包含零,删除此功能。据我所知,让程序员输入更多内容以明确地将变量赋值为零被认为不如在运行时找到一些相当棘手的错误重要。