为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凡凡凡心 2016-05-04 23:55:52
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]为什么输出的是这东西呢,谢谢
查看完整描述

2 回答

?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

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

查看完整回答
2 反对 回复 2016-05-05
?
Stypstive

TA贡献3条经验 获得超0个赞

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 . 

希望以上回答能对楼主有所帮助!

查看完整回答
反对 回复 2016-05-05
  • 2 回答
  • 0 关注
  • 1483 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信