package zzz;
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
// 1.数组定义
// (1)int[] array = new int[5];
// (2)int[] array = new int[] {3,5,7,1};
// (3)int[] array = {3,5,7,1};
// 2.内存分析(new关键字都会开辟新的内存空间)
// 栈储存局部变量arr,数组对象的内存地址赋给arr,一旦离开作用域则消失,释放内存空间
// 堆内存储存对象数据4个连续的int数据类型,对象数据没有引用不会马上消失,等待垃圾回收
int[] arr = new int[4];
arr = null;
int[] arr1 = new int[2];
arr1[1] = 100;
int[] arr2 = arr1;
arr1[1] = 10;
arr2[1] = 20;
System.out.println(arr1[1]);
// 3.Arrays的使用
int[] a = new int[] {50,10,30,70};
System.out.println(Arrays.toString(a));
Arrays.sort(a);
System.out.println(Arrays.toString(a));
// 4.遍历
int[] x = new int[] {0,1,2};
for (int i=0; i<x.length; i++) {
System.out.println(x[i]);
}
// 5.二维数组
// 内存分析:栈内存上的二维数组array存放堆内存中的3个一维数组地址
// 每一个一维数组再分别指向堆内存上的一维数组
int[][] array = new int[3][4];
System.out.println(array);
System.out.println(array.length); // 二维数组储存一维数组的个数3个
System.out.println(array[0]); // 第1个一维数组的地址
System.out.println(array[0].length); //输出4,array[0]存放4个大小的一维数组
}
}