Java 为什么这个代码总是返回零?

Java 为什么这个代码总是返回零?,java,arrays,Java,Arrays,我在脚本中看到一个['t'],不知道这是什么意思。我已经试着执行代码了。无论我在['t']中输入什么字符,它都返回0,为什么 问:无论我在['t']中输入什么字符,它都返回0 您发布的代码没有显示您在[]中放置了任何内容。所有元素最初都将为“0” 试试这个: public static void main(String[] args){ int [] a=new int[256]; System.out.println(a['t']); } 您应该看到如下内容: a['t']:

我在脚本中看到一个['t'],不知道这是什么意思。我已经试着执行代码了。无论我在['t']中输入什么字符,它都返回0,为什么

问:无论我在['t']中输入什么字符,它都返回0

您发布的代码没有显示您在[]中放置了任何内容。所有元素最初都将为“0”

试试这个:

public static void main(String[] args){
    int [] a=new int[256];
    System.out.println(a['t']);
}
您应该看到如下内容:

a['t']:84

public static void main(String[] args){
    int [] a=new int[256];
    a['t'] = 'T';
    System.out.println("a['t']: " + a['t']);
}

上面的代码创建整数数组,即如果没有指定显式值,则整数总是用0初始化,就像调用['T']时一样,它返回0。

这是因为整数数组没有用任何值初始化,它只是以256的大小声明,因此它被隐式初始化为默认值0s

不确定为什么使用“t”访问int数组,但使用“t”将首先实际转换为int,应该是116(ASCII代码为“t”),然后它意味着访问[116],由于您没有初始化该数组,该数组中的所有元素在默认情况下都应设置为0,因此您得到了该结果。

您所做的与此等效:

int [] a=new int[256]; 

因为“t”的ascii码是116,所以您正在访问一个新的整数数组的位置116,而整数的默认值是0,所以此数组的所有位置都将为0,除非您指定不同的值。

当您创建整数数组的对象时,默认情况下数组初始化为0(除非你给它赋值)。

a[116]
,它是零,因为默认情况下java将数组内容初始化为零。

这是一个疯狂的代码。你为什么要在这个数组中使用字符作为数组索引呢?第一行将创建一个新数组,它的所有内容都为0。
a['t']
't'
字符类型被转换为
int
类型,我们以
t
小写的ASCII码访问数组,因为数组中的每个元素都是0。
a['t']
相当于
a[116]
,而不是将
't'
放入
a
。查看一个
int
具有默认值
0
,因此数组将包含所有
0
t
字符ASCII码值为
116
public static void main(String[] args){
    int [] a=new int[256];
    System.out.println(a[116]);
}