什么是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。