Java中数组必须先初始化后才能使用,所谓初始化就是给数组元素分配内存,并为每个元素赋初始值。
初始化数组的2种方式:
静态初始化
动态初始化
无论以哪一种初始化数组,一旦初始化完成,数组的长度就固定了,不能改变,除非重新初始化。也就是数组是定长的。
// int[] nums = new int[]{1,3,5,7,8};
// 简单写法
int[] nums = {1,3,5,7,8};
System.out.println(nums.length); // 数组中有多少个元素
nums = new int[]{2,4,8};
下面来逐步分析
一、
int[] nums = new int[]{1,3,5,7,8};
分成三步操作:
1、声明int类型数组
nums
2、初始化数组
new int[]{1,3,5,7,8}
3、把初始化的数据赋给nums变量
内存分析:
new关键字:在堆空间开辟一块内存区域,用来存储数据。
news引用于堆空间中内存地址为 0x1234这块区域。
我们表面上操作的nums,其实底层操作的是 0x1234这块内存区域。
二、
nums = new int[]{2,4,8};
又新开辟了一块内存空间,并把内存地址给了nums变量(意思就是nums变量现在引用于0x3456这块内存区域)。
同时0x1234这块内存就变成了”垃圾”,等着垃圾回收器来回收。
三、
如何如何手动把被引用的内存变为垃圾?
nums = null;
null表示没有引用任何内存空间