自动初始化String类型的变量是什么值?
答案 0 :(得分:8)
null
除非它在方法(局部变量)中,否则它不会被声明为任何东西。
答案 1 :(得分:5)
以下是Martin v. Löwis和silky发布的答案摘要。
我们可以说以下关于String
对象的初始化:
String
是局部变量,则不会对其进行初始化。String
是类变量,实例变量或数组组件,则它将初始化为null
。推理如下:
由于String
类型的变量是引用类型,根据The Java Language Specification, Third Edition,Section 4.12.5: Initial Values of Variables说明如下:
程序中的每个变量都必须具有 使用其值之前的值
接着说明以下关于引用类型初始化的内容:
- 每个类变量,实例变量或数组组件都是 初始化时使用默认值 它被创建(§15.9,§15.10):
- [删除了有关无关信息的信息]
- 对于所有参考类型(§4.3),默认值为
null
。
最后,关注局部变量:
- 本地变量(§14.4,§14.14)必须 在它之前明确给出一个值 通过初始化使用 (§14.4)或转让(§15.26),a 可以通过的方式验证的方式 编译器使用规则确定 任务(§16)。
答案 2 :(得分:3)
如果变量是类变量,实例变量或数组组件,则将其初始化为null
(因为引用类型的默认值为null
)
如果变量是局部变量,则必须明确给出一个值(即在这种情况下它没有默认值)。
答案 3 :(得分:2)
String类型的变量是引用变量。作为实例变量,它会初始化为null
,有关其他案例的讨论,请参阅the specification。
答案 4 :(得分:2)
它是null
,除非它是本地的,在这种情况下它在技术上是未初始化的,但事实上你不能使用它,因此语言仍然是类型安全的。你无法解析垃圾指针。
答案 5 :(得分:1)
null
答案 6 :(得分:0)
String str=null
意味着str是String类的一个对象,它没有指向任何东西......但是当我们讨论内存分配时,内存将在它出现时立即分配给str。 ..u可以使用netbeans中的profiling选项来检查内存量。
答案 7 :(得分:0)
字符串值默认为NULL,无需初始化。 字符串类对象默认为NULL,只有它们被定义为类级别的atttributes,否则字符串对象没有任何默认值,需要明确初始化。
答案 8 :(得分:0)
如果String类型的变量在方法中,它将不会自动初始化。否则,将使用null作为值进行初始化。
答案 9 :(得分:0)
检查此page以获取更多信息......