多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### [基本类型默认值](https://lingcoder.gitee.io/onjava8/#/book/03-Objects-Everywhere?id=%e5%9f%ba%e6%9c%ac%e7%b1%bb%e5%9e%8b%e9%bb%98%e8%ae%a4%e5%80%bc) 如果类的成员变量(字段)是基本类型,那么在类初始化时,这些类型将会被赋予一个初始值。 | 基本类型 | 初始值 | | :-: | :-: | | boolean | false | | char | \\u0000 (null) | | byte | (byte) 0 | | short | (short) 0 | | int | 0 | | long | 0L | | float | 0.0f | | double | 0.0d | 这些默认值仅在 Java 初始化类的时候才会被赋予。这种方式确保了基本类型的字段始终能被初始化(在 C++ 中不会),从而减少了 bug 的来源。但是,这些初始值对于程序来说并不一定是合法或者正确的。 所以,为了安全,我们最好始终显式地初始化变量。 这种默认值的赋予并不适用于局部变量 —— 那些不属于类的字段的变量。 因此,若在方法中定义的基本类型数据,如下: ~~~ int x; ~~~ 这里的变量 x 不会自动初始化为0,因而在使用变量 x 之前,程序员有责任主动地为其赋值(和 C 、C++ 一致)。如果我们忘记了这一步, Java 将会提示我们“编译时错误,该变量可能尚未被初始化”。 这一点做的比 C++ 更好,在后者中,编译器只是提示警告,而在 Java 中则直接报错。