Java数组

1.Java的数组变量是引用类型的变量——数组变量存在栈中,数组对象存在堆中。

2.Java数组的2种初始化方式

  所谓初始化,即在堆中创建数组对象,也就是在内存中为数组对象分配一块连续的内存空间,并为每个数组元素指定初始值。

  对于数组变量来说,它并不需要所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量。

1)静态初始化

    由程序员指定每个元素的初始值,由系统决定长度。

    

int[] arr = new int[]{1, 2, 3, 4, 5};//静态初始化
int[] arr = {1, 2, 3, 4, 5};//静态初始化的简化形式

2)动态初始化

    程序员指定数组长度,系统为每个元素分配初始值(0, 0.0,null,FALSE)。

int[] arr = new int[5];//动态初始化

注:不要同时使用两种初始化方式, int[] arr = new int[5]{1, 2, 3, 4, 5},这种形式是错误的!


3.局部变量必须由程序员赋初值。


4.“基本类型变量的值存储在栈中”这句话是完全错误的。例如:上面的int型arr数组中的每个值都存在堆中。

实际上应该说:所有局部变量都是放在栈里保存的,不管其是基本类型的变量还是引用类型的变量,都是存储在各自的方法栈内存中的;但引用类型变量所引用的对象(包括数组、普通的java对象)则总是存储在堆中的。



From《疯狂JAVA程序员的基本修养》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值