Java语言基础-数组的静态初始化和内存分析

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表示没有引用任何内存空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值