什么是Java String的默认初始值?

Sel*_*vin 53 java string

考虑一个名为的Java字符串字段x.x为类x创建对象时的初始值是什么;

我知道对于int变量,默认值被指定为0正在创建实例.但是什么变成了String

duf*_*ymo 104

如果你什么也不做,它就被初始化为null,就像所有引用类型一样.

  • @selvin:是的,`Integer`也是'null`.正如答案所说:**所有**引用类型都将为"null".然而,`int`,它是一个原始类型,因此不是引用类型,将是'0`. (33认同)
  • 为什么它没有分配为空字符串""?整数也变为空吗? (3认同)

Dex*_*ter 24

那要看.它只是一个变量(在一个方法中)?还是一个班级成员?

如果它只是一个变量,你会得到一个错误,在尝试从中读取时没有设置任何值而没有先给它一个值.

如果它是一个类成员,它将被VM初始化为null.


nik*_*500 10

答案是 - 这取决于.

变量是实例变量/类变量吗?有关详细信息,请参阅

可以在此处找到默认值列表.

  • 它不依赖..所有引用类型都设置为null. (9认同)

Car*_*das 8

有三种类型的变量:

  • 实例变量:始终初始化
  • 静态变量:始终初始化
  • 局部变量:必须在使用前初始化

实例静态变量的默认值是相同的,取决于类型:

  • 对象类型(String,Integer,Boolean等):使用null初始化
  • 原始类型:
    • byte,short,int,long:0
    • float,double:0.0
    • 布尔值:false
    • char:'\ u0000'

数组是一个Object.因此,声明但未显式初始化的数组实例变量将具有null值.如果将int []数组声明为实例变量,则它将具有null值.

创建数组后,其所有元素都将使用默认类型值进行分配.例如:

private boolean[] list; // default value is null

private Boolean[] list; // default value is null
Run Code Online (Sandbox Code Playgroud)

一旦初始化:

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)
Run Code Online (Sandbox Code Playgroud)


dev*_*per 5

任何对象,如果它被初始化,其防御值为null,除非我们明确提供默认值.