代码之家  ›  专栏  ›  技术社区  ›  Kasun Miuranga

java中的数组对象地址和引用变量地址[重复]

  •  -3
  • Kasun Miuranga  · 技术社区  · 2 年前
        int[] ar;
        ar = new int[5];
    
        System.out.println(ar);
        System.out.println(new int[5]);
    

    [I@15db9742

    [I@6d06d69c

    为什么这些地址不一样?

    1 回复  |  直到 2 年前
        1
  •  0
  •   Elliott Frisch    2 年前

    因为它们是不同的五行 int 0 (s) 。他们 能够 包含任意五个元素。

    new int[5]
    

    相当于

    new int[] {0, 0, 0, 0, 0};
    

    new int[] ).

    您的代码等效于

    int[] ar = new int[5];
    System.out.println(ar);
    int[] br = new int[5];
    System.out.println(br);
    

    ar br 是不同的。我们可以在 jshell

    jshell> int[] ar = new int[5];
    ar ==> int[5] { 0, 0, 0, 0, 0 }
    
    jshell> int[] br = new int[5];
    br ==> int[5] { 0, 0, 0, 0, 0 }
    
    jshell> System.out.println(ar);
    [I@52cc8049
    
    jshell> System.out.println(br);
    [I@27973e9b