Java数组的数组名相当于一个引用变量,当数组元素为基本类型时数组存储的是值(初始值为0),当数组元素为引用类型时数组存储的是对象引用(初始值为null)。
数组引用变量是存放在栈内存(stack)中,数组元素是存放在堆内存(heap)中,通过栈内存中的指针指向对应元素的在堆内存中的位置来实现访问,以下图来说明数组此时的存放形式。
public class test {
public static void main(String[] args) {
int[] arr=new int[10];
String[] s=new String[10];
System.out.println(arr);//[I@5ca881b5 arr为地址
System.out.println(s);//[Ljava.lang.String;@24d46ca6 s为地址
System.out.println(arr[0]);//0 初始值为0
System.out.println(s[0]);//null 初始值为null
}
}