Java基本成员变量默认值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LuuvyJune/article/details/84875866

最近在读《Thinking in Java》,其中讲到基本成员默认值的时候,有这样一段内容:

看到这,我想起自己之前有一次面试,被面试官问到过这个问题:

如果一个变量的作用域在整个类的范围,如果要程序编译通过,需要手动给它赋初始值吗?若是作用域只在某个方法或者方法中某个{}中,还需要赋初始值吗?

很遗憾,对于这样一个基础的问题,我回答错误。

(1)当某个基本数据类型作为类的成员变量时,Java会赋予一个默认值:

输出结果:

(2)当某个基本数据类型作为“局部变量”时,不会被初始化值,如下图,编译报错:Variable 'x' might not have been initialized

(3)那么如果某个字段是某个对象的引用,必须初始化该引用,以便与其一个实际的对象相关联。

拿最常用的List作为例子,当不初始化该类变量:

输出结果:

初始化之后:

输出结果:

那么作为“局部”类变量,结果如何?

编译直接报错了,验证了类变量必须初始化。

我发现其实越是基础的知识,越是容易混淆或者从来没有弄清楚过,只要一笔试,就看出了程序员的基本功,往往我有时候会害怕笔试,因为完成之后会让自己“原形毕露”。基础功应该是每个职位的必修课,加油吧!

猜你喜欢

转载自blog.csdn.net/LuuvyJune/article/details/84875866