一个数组里只能存储一种数据类型(可以是引用类型),由于Java面向对象支持继承,可能会产生存储多种数据类型的假象
数组的定义:type[] arrayname;还有另外一种格式不推荐,含义不明确,数组定义时不能指定长度,arrayname只是一个指针还未指向有效的内存(还未分配内存空间),
数组的初始化:为数组元素分配内存空间,并为每个数组元素赋值
初始化方式,1---静态初始化,初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度
arrayName = new Type[]{e1,e2,e3,,,,,,}---------------还可以省略new Type : arrayName = {e1,e2,e3,,,,}
定义和初始化可以同步完成
2--动态初始化,只指定数组的长度,每个元素值由系统指定初值
arrayName = new Type[length];
使用数组:arrayName[0-(length-1)]超出指定范围会在运行时产生异常:ArrayIndexOutOfBoundsException:N 数组索引越界
arrayName.length---数组长度
foreach循环:java5之后提供的
for(type v : array|collection){}//自动迭代访问每个元素 ###########当需要在循环中改变元素的值的时候,不要用foreach会导致错误出现
数组在内存中的存在方式:Java疯狂讲义/92页,感觉讲的很详细
基本数组类型初始化时,数组在内存中的状态
引用类型数组初始化时在内存中的状态:
不存在的多维数组,二维数组只是一维数组的数组元素又是一个引用类型,指向另个一维数组,内存状态分析看书上
#####二维数组是一维数组,其数组元素是一维数组,三维数组是一维数组,其数组元素是二维数组
语法:Type[][] arrayName;
Java8增强工具类:Arrays(可以方便的操作数组)