字符数组(Java)中空单元格的值是多少? 请考虑这种情况: char[] array = new char[4]; array[0] = 'a'; array[1] = '3'; array[3] = 'q';

字符数组(Java)中空单元格的值是多少? 请考虑这种情况: char[] array = new char[4]; array[0] = 'a'; array[1] = '3'; array[3] = 'q';,java,arrays,char,Java,Arrays,Char,如您所见,array[2]从未“填充”过任何内容。数组[2]的值是多少 在遍历char数组,查找“空”单元格时,需要检查哪些内容?array[2]将填充null char literal。其值为\u0000 char是一种基本类型。这意味着它永远不能保持null,因此像int、double和其他一样,它需要一些起始值。对于int它是0,对于char它是\u0000,实际计算结果是0 您可以查看基本类型的起始值。答案是:(char)0 基本体的默认值为0、0.0f、0.0(双精度)、(字符)0和f

如您所见,
array[2]
从未“填充”过任何内容。
数组[2]
的值是多少


在遍历
char
数组,查找“空”单元格时,需要检查哪些内容?

array[2]
将填充
null char literal
。其值为
\u0000

char
是一种基本类型。这意味着它永远不能保持
null
,因此像
int
double
和其他一样,它需要一些起始值。对于
int
它是
0
,对于
char
它是
\u0000
,实际计算结果是
0

您可以查看基本类型的起始值。

答案是:(char)0

基本体的默认值为0、0.0f、0.0(双精度)、(字符)0和false(对于布尔值)


适用于数组和单变量。

在Java中,
char[]array=new char[4]
会将与该数组关联的所有内存设置为零。因此,在这种情况下,每个元素的值都是空字符literal
“\0”


(这对于所有语言都是不正确的,例如在C++和C++中,内存是统一的,在初始化之前是访问的,技术上是未定义的行为)。数组的空单元总是0,因为数组是由0自动初始化的,所以它将是“0”< /p> ,就像其他已经说过的一样。默认值为空'\u0000'。


如果您试图打印出来,它将是一个空值。(意思是看不到它)

System.out.println(数组[2]);不确定是否重复,但重要且相关,至少:这不是“技术上未定义的行为”,只是未定义的行为:-)(这是一个非常糟糕的主意)。因此,在大小为2的整数数组中,如果我用整数0填充一个单元格,而将另一个单元格留空……这是否意味着两个单元格的值相同?因为int的null也为0。任何基元类型都没有
null
,它们都有初始化为的默认值。如果将数组中的第一个值设置为0并保留第二个值,则它们将具有相同的值。