数组变量是一种引用类型的变量,能够指向数组对象。数组对象存储在堆内存中,当数组变量为局部变量时存储在栈内存中。
int[] p = new int[]{5, 6, 7, 8, 9};
p是数组变量,指向有new产生的整型数组对象。如下图所示:
所以,以下代码是正确的
int[] a = new int[]{7, 8, 9}; int[] b = new int[4];
b = a;
int[] c = null;
b可以指向a所指向的数组对象,c的值可以为null,表示没有指向任何数组对象。
这与C语言不同,C中数组名是一个常量,java中数组名则是一个指针变量。