数组的定义和创建
数组:是多个相同数据类型的组合,实现对这些数据的统一管理
数组元素:数组中的每一个数据,成为数组的一个元素
- 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
数组中元素的个数,成为数组的长度(length)
注:Java语言中声明数组时,不能指定其长度;
数组的声明:
数组类型 数组名[]
或 数组类型[] 数组名
数组初始化(声明并指定数组长度)
int a[]=new int[5];
int[] array;
array=new int[5];
数组的内存模型
- 数组是存储多个相同类型变量的对象。
数组中的所有元素保存在堆内存中。 - 创建数组就是在堆中创建一个数组对象。
-
数组创建后立即拥有默认值。
1.整数类型数组默认值为0
2.String类型数组。默认是null
3.char类型数组,默认是0对应的字符。(空字符)
4.浮点类型数组,默认是0.0(float和double都是)
5.boolean类型数组,默认值是false
- 索引从0开始
- 连续分配
数组初始化
在创建数组的同时就为数组元素分配空间并赋值
数组类型 数组名[]={元素1,元素2,...}
或
数组类型 数组名[]=new 数组类型[]{元素1,元素2,...}
int a[]={1,2,3,4};或int a[]=new int[]{1,2,3,4};
数组元素的赋值
- 数组下标从0开始
- 数组下标可以是整型常量或整型表达式
- 数组的查询效率高,可以通过下标进行对数组的定位检索
动态初始化:使用new创建数组,不分配元素,都是默认值(指定长度)
静态初始化:在创建数组的同时进行赋值(指定内容)
foreach循环访问数组
foreach循环:JDK5以后版本中,增加的循环方式,是for循环的特殊简化方式。
语法:
for(数组元素类型 变量名:数组名){
语句(遍历数组的话打印System.out.println(变量名)
}
按下标顺序将数组从0开始的每个值依次赋给左边变量,数组长度为for循环次数
数组长度
数组名.length
特点:
- 数组的长度必须>=0
- length为只读,不能被赋值
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[];
int b[]=null;
int c[]= {};
int d[]=new int[0];
// System.out.println(a.length);The local variable a may not have been initialized报错变量未初始化
// System.out.println(b.length);空指针异常
System.out.println(c.length);//0
System.out.println(d.length);//0
}
二维数组
定义格式:
int a[][]=new int[3][];
int b[][]=new int[3][4];
int c[][]= {{1,2,3},{2,3,4}};
int d[][]= new int[][]{{1,2,3},{2,3,4}};
网友评论