java数组的内存表示
数组在java中也是一个特殊对待类型,具有连续存储的特征。数组占连续空间,长度创建固定以后无法修改,不允许扩展空间。
优点:数组随机访问很快,数组元素存储空间是连续的占同样大小的空间,这样访问元素就非常的快速,因为数组元素存储的规律,可以通过元素第一个位置很快的计算出其它元素的位置
弱点:空间已经固定,开辟新空间不被允许,因为这个数组尾部的连续内存空间可能已经被其它对象分配占用,而数组的要求是它所有的元素的地址必须是连续存储的
弱点:插入和删除元素比较慢 :因为删除和插入一个元素必然要把后面的所有元素依次移动
自定义类型数组元素的内存表示:
Example[] b = new Example[5];
上面这句话创建了一个b的指针,指向了有5个元素的数组对象,这5个连续存储的元素初始值为null,5个元素绝不是对象,是5个Example对象的指针,到时创建Example对象时将地址存入到数组的元素中数组对象是不能包含任何其它对象的,最多是包含其它对象的引用。也可以说任何对象在它的内存中都不能包含其它任何对象,最多也是只能包含其它对象的引用。