一个数组的内存图与两个数组的内存图
数组在内存中的存储
一个数组内存图
public class demo09 { public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr); } }
public class demo09 { public static void main(String[] args) { int[] array = new int[3]; System.out.println(array); System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println("********************"); array[1]= 10; array[2]= 20; System.out.println(array); System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]);
以上方法执行,输出的结果是[I@5f150435,这个是什么呢?是数组在内存中的地址。new出来的内容,都是在堆
内存中存储的,而方法中的变量arr保存的是数组的地址。
输出arr[0],就会输出arr保存的内存地址中数组中0索引上的元素
两个数组内存图
public class demo09 { public static void main(String[] args) { int[] array = new int[3]; System.out.println(array); System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println("********************"); array[1]= 10; array[2]= 20; System.out.println(array); System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); int[] arrby = new int[3]; System.out.println(array); System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println("********************"); array[1]= 10; array[2]= 20; System.out.println(arrby); System.out.println(arrby[0]); System.out.println(arrby[1]); System.out.println(arrby[2]); } }
public static void main(String[] args) { int[] arr = new int[3]; int[] arr2 = new int[2]; System.out.println(arr); System.out.println(arr2); }