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

Mob*_*Mob 2 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);
   }
}
Run Code Online (Sandbox Code Playgroud)

打印出来

 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
 [I@1242719c
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*nch 8

你打印出的内部表示c.基本上[I@1242719c分为两个重要的事情.首先,[表示您正在打印数组.其次,I表示它是一个整数.因此,您正在打印一个整数数组!尝试用字符串数组替换整数数组,并相应地观察Iget替换.从这个页面:

数组类的名称每个维度都有一个空方括号,加上表示数组类型的字母或字符串.例如,int数组的类名是"[I".三维字节数组的类名是"[[[B".对象的二维数组的类名是"[[Ljava.lang.Object".第6章"Java类文件"中给出了这种数组类命​​名约定的完整细节.