其实无论是哪种语言,数组都用的很多了。今天我们更加关注的几点是,数组在java中的内存机制,初始化方式。
内存机制
首先,数组属于引用类型。这意味着它的变量部分存储在栈内存中,实例分配于堆内存中。指向堆内存中对象地址。也需要new对象。
因此,采用int[] arr1=arr时,arr1和arr都指向同一个对象的地址。当修改arr时,arr1的值也会改变(浅拷贝)。
因为数组是不可变长度的。,所以在后来的集合框架中,使用ArrayList构造了可变长度的数组
初始化方式
初始化方式有二:
- 动态初始化,只指定数组长度,系统自动分配初始值
- 静态初始化,指定每个元素初始值,系统决定长度
静态初始化
两个常碰到的异常:数组越界异常和空指针异常(null[0]这种)