以下是Martinv.Löwis和silky发布的答案摘要.
我们可以说以下关于String对象的初始化:
String是局部变量,则不会初始化.String是类变量,实例变量或数组组件,那么它将被初始化为null.理由如下:
作为类型String为的引用类型的变量,根据Java语言规范,第三版,第4.12.5节:变量的初始值,如下所示:
程序中的每个变量在使用其值之前必须具有值
接着说明以下关于引用类型的初始化:
- 每个类变量,实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9,§15.10):
- [删除了无关信息的信息]
- 对于所有引用类型(§4.3),默认值为
null.
最后,关注局部变量:
- 局部变量(§14.4,§14.14)必须在使用之前通过初始化(§14.4)或赋值(§15.26)显式赋予一个值,编程方式可以使用定义规则进行验证.任务(§16).