Java - 数组值,内存地址还是?

时间:2011-08-10 20:24:24

标签: java arrays

此代码

public static void main(String [] args){
     int c[] ={10,21,34,36,90,33,44,5};
     int tot = 0;
  for(int i:c){
      System.out.println(c);
   }
}

打印

 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c

我知道我应该打印出int变量,但我很好奇这意味着什么。感谢

1 个答案:

答案 0 :(得分:8)

您正在打印c的内部代表。基本上[I@1242719c分解为两件重要的事情。首先,[表示您正在打印数组。其次,I表示它是一个整数。因此,您正在打印一个整数数组!尝试用字符串数组替换整数数组,并观察相应的I替换。 From this page

  

数组类的名称每个都有一个空方括号   dimension加上表示数组类型的字母或字符串。对于   例如,int数组的类名是“[I”。班级名称   对于三维字节数组是“[[[B”。一个类的名称   对象的二维数组是“[[Ljava.lang.Object”。满满的   有关数组类的命名约定的详细信息,请参阅   第6章“Java类文件”。