一个小问题,麻烦各位帮下忙

import java.util.Arrays;

public class 快速输出数组 {

public static void main(String args[]) {

int[][] a = {{1,2},{3,4},{22,2}};

System.out.print("排序前的数组为:");

System.out.println(Arrays.toString(a));

}

}


输出结果是:

排序前的数组为:[[I@659e0bfd, [I@2a139a55, [I@15db9742]


为什么输出的是这东西呢,谢谢


凡凡凡心
浏览 1484回答 2
2回答

qq_青枣工作室_0

看来,Arrays.toString不能输出二维数组。输出的那三个是int数组在java虚拟机里的内存地址。

Stypstive

Arrays.toString(a)是调用了a的toString方法进行了打印输出.  由于a没有重写toString()方法,所以调用了它的父类Object的的toString方法.所以输出的是 数据类型@hashcode的形式,就是你看到的输出结果.注意:原始数据类型,和数组都是继承Object的. 至于[[I,,代表是一个int型的二维数组类型. 至于其他的基本数据类型,你可以通过 变量名.getClass().getName()得到.  具体参见Java API Class类的getName方法说明,其中原始数据类型与Object的关系进行了较为详细的说明. boolean           Z    byte           B    char           C    class or interface           Lclassname;    double           D    float           F    int           I    long           J    short           S     以上是对应的标示.例如你定义一个 long longData[][] = {{1,2,},{1,2}} , 那么longData.getClass().getName() 将return [[J . 希望以上回答能对楼主有所帮助!
打开App,查看更多内容
随时随地看视频慕课网APP