public class array2 {
public static void main(String[] args) {
int[][] a = {
{1,3},
{2,4}
};
int[][] b = {
{3,4},
{5,6}
};
int[][] c = new int[2][2];
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
c[i][j] = a[i][j] + b[i][j];
System.out.print(c[i][j]+"\t");
}
System.out.println();
}
System.out.println((Arrays.toString(c)));
}
}
----------------------------------------------------------------
输出结果
————————————————————————————
4 7
7 10
[[I@504bae78, [I@3b764bce]
因为c是一个二维数组。相当于一个长度为2的数组,但是这个数组的元素是数组。
当执行Arrays.toString的时候相当于遍历数组,并且输出数组的元素,但是这个数组的元素是数组,所以这里输出的是地址。
可以进入到Arrays.toString里面看源码,
因为c是二维数组,所以这里的a[i]就是一个数组,并不是一个实际的数。然后每次执行String.valueOf(a[i])方法。然后进入源码String类里面的valuefOf方法。
在valueOf里面调用的是obj.toString()方法,
这里返回的字符串格式就是你控制台输出的样式。