局部变量的默认值的问题
昨天看了几道Java认证工程师的试题,有一道题如下。
局部变量boolean的默认值为
A、false
B、true
C、null
D、无默认值,必初始化
正确的答案是D,当时我的答案是A false,那么为什么我要选A呢,原因如下。
基本类型 默认值
boolean false
char ‘\u0000’ (null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
但是我的答案是错的,在eclipse手动敲出了类似的代码,测试一下,再次证明答案D是对的。具体原因如下。
系统不会自动为局部变量赋初值,但对于成员变量,系统会自动赋初值。基本类型的值为0,复合类型的值为null。因此上述类型的默认值只使用于成员变量不适用于局部变量。
Last Modified:2011-12-25