考虑名为x
的Java字符串字段。
为类x创建对象时,x
的初始值是什么;
我知道对于int
变量,默认值被指定为0
,因为正在创建实例。但是String
变成了什么?
答案 0 :(得分:98)
如果你什么也不做,它就被初始化为null,就像所有引用类型一样。
答案 1 :(得分:23)
这取决于。它只是一个变量(在一个方法中)?还是一个班级成员?
如果它只是一个变量,你会得到一个错误,在尝试从中读取时没有设置任何值而没有先给它一个值。
如果它是一个类成员,它将被VM初始化为null。
答案 2 :(得分:10)
答案 3 :(得分:7)
有三种类型的变量:
实例和静态变量的默认值相同,具体取决于类型:
数组是对象。因此,声明但未显式初始化的数组实例变量将具有 null 值。如果将int []数组声明为实例变量,则它将具有空值。
创建数组后,其所有元素都将使用默认类型值进行分配。例如:
private boolean[] list; // default value is null
private Boolean[] list; // default value is null
一旦初始化:
private boolean[] list = new boolean[10]; // all ten elements are assigned to false
private Boolean[] list = new Boolean[10]; // all ten elements are assigned to null (default Object/Boolean value)
答案 4 :(得分:6)
任何对象,如果它被初始化,其默认值为null,除非我们明确提供默认值。