什么是Java字符串';默认初始值是多少?
考虑一个名为什么是Java字符串';默认初始值是多少?,java,string,Java,String,考虑一个名为x的Java字符串字段。 为类x创建对象时,x的初始值是多少 我知道,对于int变量,在创建实例时,默认值被指定为0。但是字符串会怎么样呢?如果你什么都不做,它会初始化为null,就像所有引用类型一样。任何对象如果被初始化,它的default值都是null,除非我们显式提供默认值。这取决于。它只是一个变量(在方法中)?还是一个班级成员 如果它只是一个变量,那么在尝试读取它时,如果没有先为它赋值,就会出现一个错误,即没有设置任何值 如果它是类成员,它将被VM初始化为null。答案是-这
x
的Java字符串字段。
为类x创建对象时,x
的初始值是多少
我知道,对于
int
变量,在创建实例时,默认值被指定为0
。但是字符串会怎么样呢?如果你什么都不做,它会初始化为null,就像所有引用类型一样。任何对象如果被初始化,它的default值都是null,除非我们显式提供默认值。这取决于。它只是一个变量(在方法中)?还是一个班级成员
如果它只是一个变量,那么在尝试读取它时,如果没有先为它赋值,就会出现一个错误,即没有设置任何值
如果它是类成员,它将被VM初始化为null。答案是-这取决于
该变量是否为实例变量/类变量?有关更多详细信息,请参阅
可以找到默认值列表。有三种类型的变量:
- 实例变量:始终初始化
- 静态变量:始终初始化
- 局部变量:必须在使用前初始化
实例和静态变量的默认值相同,取决于类型:
- 对象类型(字符串、整数、布尔值和其他):使用null初始化
- 基本类型:
- 字节,短,整数,长:0
- 浮动,双精度:0.0
- 布尔值:false
- 字符:'\u0000'
数组是一个对象。因此,声明但未显式初始化的数组实例变量将具有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)
为什么不指定为空字符串“”?整数是否也变为空?@selvin:yes,Integer
也将变为null
。正如答案所说:所有引用类型都将是null
int
但是,这是一种基本类型,因此不是引用类型,它将是0
。请查看它不依赖的文档。。所有引用类型都设置为null。