字符串类型的变量被自动初始化为什么值?
发布于 2009-08-30 06:47:58
null
除非它在一个方法(局部变量)中,在这种情况下,它不会被声明为任何东西。
发布于 2009-08-30 07:01:33
以下是Martin v. Löwis和silky发布的答案摘要。
关于String对象的初始化,我们可以这样说:
String是一个局部变量,则它不会被初始化。如果String是一个类变量、实例变量或数组组件,则它将被初始化为理由如下:
根据The Java Language Specification, Third Edition的说法,由于类型为String的变量是引用类型,因此Section 4.12.5: Initial Values of Variables会这样说:
程序中的每个变量在使用它的值之前都必须有一个值
关于引用类型的初始化,它接着说了以下内容:
对于每个类变量、实例变量或数组组件,在创建时都会使用默认值进行初始化(§15.9、§15.10):
null.
最后,关于局部变量的如下内容:
发布于 2009-08-30 06:55:08
如果变量是类变量、实例变量或数组组件,则将其初始化为null (因为引用类型的默认值为null)
如果变量是一个局部变量,那么必须显式地给它一个值(即在这种情况下它没有默认值)。
https://stackoverflow.com/questions/1353264
复制相似问题