数组的定义
1.声明数组
声明形式一:
1 //type arrayName[];
2 3 int a[];
声明形式二:
1 //type[] arrayName;
2 3 int[] a;
二维数组的声明和一维数组类似,内存分配也是使用new关键字.
声明:
1 //type arrayName[][];
2 3 int a[][]
初始化:
1 //arrayName[][]=new type[行][列];//注意:行、列是方便理解加上的 2 3 //a=new int[2][3]; 4 5 package com.lzx; 6 7 public class Test6 { 8 9 public static void main(String[] args) { 10 11 int a[][]; a=new int[2][3]; 12 13 for (int i = 0; i < a.length; i++) { 14 15 for (int j = 0; j < a[i].length; j++) { 16 17 System.out.print(a[i][j]); 18 19 } 20 21 System.out.println(); 22 23 } 24 25 } 26 27 } 28 29 //运行结果 30 31 000 32 000
实例:
1 //声明数组 2 3 int arrayDemo[]; 4 5 int[] score;
2.内存的分配
为数组分配内存空间,如果不分配内存,将不能访问它的任何元素.我们使用new关键字 来为数组分配内存空间
1 package com.lzx; 2 3 public class Test4 { 4 public static void main(String[] args) { 5 int[] score=null;//数组的声明 6 score=new int[3];//为数组开辟内存空间,实例化 7 //int[] score=new int[3];//这种写法是结合前两行 8 for (int i = 0; i < score.length; i++) { 9 System.out.println(score[i]); 10 } 11 12 } 13 } 14 15 //运行结果 16 0 17 0 18 0
由于数组没有被赋值,所以显示默认值,比如int类型的默认值是0,string类型的默认值是空(null).
3.数组的初始化
java语言可以使用new操作符动态来初始化数组,语法如下:
1 //arrayName=new dataType[arraySize]; 2 a=new int[5];
只指定数组的长度,让系统来决定数组的元素的值.
如果数组元素是基本类型,那么所有数组元素的值都是0/0.0/false/\u0000(只记都是零)
如果数组元素是应用数据类型,那么所有数组元素的值都是null.
数组变量的声明,和创建数组可以用一条语句完成,如下所示:
1 dataType[] arrayName=new dataType[arratSize]; 2 int[] a=new int[5];
另外,你还可以使用静态初始化的方式创建数组.
1 //dataType[] arrayRefVar = {value0,value1,value2,...} 2 int[] a={144,4,45,44,..}
只指定数组的元素,让系统来决定数组的长度.
4.数组类型
Java数据类型可以分为:基本类型---8个和引用类型---类、接口、数组
数组是引用类型
1 int→int[]---整数数组 2 double→double[]---double数组 3 .... 4 String→String[]---String数组
借助于数组,我们可以非常方便地去管理、访问每个数组元素(相当于一个变量)
Java数组的两大特征:
1 Java语言是强类型:一个数组里只能存储一种数据类型的数据 2 Java语言是静态的:Java的数组一旦被初始化之后,它的长度是固定的。
定义数组时,不能指定数组的长度
数组类型是引用类型.
引用类型的本质就是指针.---指针也是变量,只不过它里面存的值是内存编号(内存地址)数组变量只是一个引用,因此声明时只是定义了一个引用变量,并未真正指向有效的数组对象(存在),也就是并为真正指向有效的内存,因此不能声明长度,而且也不能使用。
5.遍历数组:
1.for循环
1 package com.lzx; 2 3 public class Test5 { 4 public static void main(String[] args) { 5 int[] a=new int[] {5,48,4,5,4}; 6 for (int i = 0; i < a.length; i++) { 7 System.out.print(a[i]+" "); 8 } 9 10 11 } 12 } 13 14 //运行结果 15 5 48 4 5 4
2.foreach
1 package com.lzx; 2 3 public class Test6 { 4 public static void main(String[] args) { 5 int[] a=new int[] {5,48,4,5,4}; 6 for (int b:a) { 7 System.out.print(b+" "); 8 } 9 } 10 } 11 //运行结果 12 5 48 4 5 4