java数组:
数组是引用类型,需要new, 可以存储相同数据类型的一组数据
数组中元素的编号成为下标或者索引
1.声明数组:int[] a; int a[]; 声明在执行完之后 还没有分配空间,只是有一个名字a;
2.分配空间:a = new int[5]; new在内存里面开辟空间 此处是开辟5个int型空间给a;
3.赋值: a[0] = 8; 数组名结合下标进行元素定位 然后进行赋值操作;赋值操作注意是否同类型
4.处理数据:a[0] = a[0]*10;
1&2的合并写法是: int[] a = new int[5]; 或者 int a[] = new int[5];
注意点: 不要发生数组下标越界的错误;
数组在结合循环的时候使用非常方便!
数组动态赋值:
int[] score = new int[5]; //要指定长度
score[0] = 89;
score[1] = 79;
score[2] = 76;
数组静态赋值://静态赋值时不能指定[]中的长度 下面两句 都不能指定长度
int[] score = {89, 79, 76};
int[] score = new int[]{89, 79, 76};
数组一旦创建成功会有初始值:(不同类型数组的默认初始值不同)
int型数组元素初始值就为:0
doublle型和float型数组元素初始值就为:0.0
String型数组元素初始值就为:null (String属于引用类型)
boolean型数组元素初始值就为:false
char型数组元素初始值为:(\u0000)(为“空”,就是什么都没有!!!不是空格!!!也不是null!!!)
//引用类型的对象默认初始值为:null
【对象句柄】 这四个字可以简单地理解成就是对象的名字(变量)
二维数组声明和定义的格式:
①:int[][] arr = new int[3][2];该二维数组中有3个一维数组,每一个一维数组中有2个元素,一维数组的名称分别为arr[0],arr[1],arr[2],给第一个一维数组中下标为
1的元素赋值为70的写法是:arr[0][1] = 70;
②:int[][] arr = new int[3][];该二维数组中有3个一维数组,每个一维数组都是默认初始化值null,可以对这三个一维数组分别进行初始化
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
③:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};该二维数组中有三个一维数组,每一个一维数组都已经初始化了了具体的元素,第一个一维数组arr[0] = {3,8,2}; 第二
个一维数组arr[1] = {2,7};第三个一维数组arr[2] = {9,0,1,6};第三个一维数组的长度表示方式:arr[2].length;而arr.length的值则为3(即三个一维数组)
引用类型在赋值的时候 给的是内存地址;
java5新增了一个循环结构foreach,也叫增强for循环,语法更简洁。
例如:
int[] score = {60,80,90,70,85};
for(int n:score) {
//foreach的作用就是将一个数组从头遍历到尾的完整作用,所以不需要下标,
//此处就是将score数组中的每个元素都存储到n中 所以n的数据类型一定要和score数组中的元素类型相同、
System.outprintln(n);
}
数组是引用类型,需要new, 可以存储相同数据类型的一组数据
数组中元素的编号成为下标或者索引
1.声明数组:int[] a; int a[]; 声明在执行完之后 还没有分配空间,只是有一个名字a;
2.分配空间:a = new int[5]; new在内存里面开辟空间 此处是开辟5个int型空间给a;
3.赋值: a[0] = 8; 数组名结合下标进行元素定位 然后进行赋值操作;赋值操作注意是否同类型
4.处理数据:a[0] = a[0]*10;
1&2的合并写法是: int[] a = new int[5]; 或者 int a[] = new int[5];
注意点: 不要发生数组下标越界的错误;
数组在结合循环的时候使用非常方便!
数组动态赋值:
int[] score = new int[5]; //要指定长度
score[0] = 89;
score[1] = 79;
score[2] = 76;
数组静态赋值://静态赋值时不能指定[]中的长度 下面两句 都不能指定长度
int[] score = {89, 79, 76};
int[] score = new int[]{89, 79, 76};
数组一旦创建成功会有初始值:(不同类型数组的默认初始值不同)
int型数组元素初始值就为:0
doublle型和float型数组元素初始值就为:0.0
String型数组元素初始值就为:null (String属于引用类型)
boolean型数组元素初始值就为:false
char型数组元素初始值为:(\u0000)(为“空”,就是什么都没有!!!不是空格!!!也不是null!!!)
//引用类型的对象默认初始值为:null
【对象句柄】 这四个字可以简单地理解成就是对象的名字(变量)
二维数组声明和定义的格式:
①:int[][] arr = new int[3][2];该二维数组中有3个一维数组,每一个一维数组中有2个元素,一维数组的名称分别为arr[0],arr[1],arr[2],给第一个一维数组中下标为
1的元素赋值为70的写法是:arr[0][1] = 70;
②:int[][] arr = new int[3][];该二维数组中有3个一维数组,每个一维数组都是默认初始化值null,可以对这三个一维数组分别进行初始化
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
③:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};该二维数组中有三个一维数组,每一个一维数组都已经初始化了了具体的元素,第一个一维数组arr[0] = {3,8,2}; 第二
个一维数组arr[1] = {2,7};第三个一维数组arr[2] = {9,0,1,6};第三个一维数组的长度表示方式:arr[2].length;而arr.length的值则为3(即三个一维数组)
引用类型在赋值的时候 给的是内存地址;
java5新增了一个循环结构foreach,也叫增强for循环,语法更简洁。
例如:
int[] score = {60,80,90,70,85};
for(int n:score) {
//foreach的作用就是将一个数组从头遍历到尾的完整作用,所以不需要下标,
//此处就是将score数组中的每个元素都存储到n中 所以n的数据类型一定要和score数组中的元素类型相同、
System.outprintln(n);
}