1.数组
>定义:多个相同数据类型的数据按一定的顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一的管理。
2.数组相关概念:数组名,下表(索引),元素,数组的长度
3.数组特点:
>数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型
>数组是有序排列的
>数组长度一旦确定就不能修改
4.数组的分类
>按照维数:一维数组、二维数组、。。
>按照数组元素的类型,基本数据类型数组、引用数据类型数组
5.一维数组的使用
①一维数组的声明和初始化
②如何调用数组的指定位置的元素
③如何获取数组的长度
④如何遍历数组
⑤数组元素的默认初始化值
⑥数组的内存解析
内存解析:
public class Java_Array {
public static void main(String[] args) {
// 1.一维数组的声明和初始化
int num;//声明
num = 10;//初始化
int id = 10;// 声明+初始化
int[] ids; //声明
//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
//1.2动态初始化:数组的初始化和数组的元素赋值操作分开进行
String[] names = new String[5];
int[] arr = {1,2,3,4}; 也是正确的写法,参考c语言中也可以这样定义数组
错误的写法
// int[] arr = new int[];
// int[2] arr2 = new int[5];
// int[] arr3 = new int[3]{1,2,3};
//总结:数组一旦初始化完成,长度就确定了
//2.如何调用数组的指定位置的元素:通过角标的方式调用。
//数组的角标(或索引)从0开始的,到数组的长度-1结束。
names[0] = "ikun";
names[1] = "小黑子";
names[2] = "香翅捞饭";
names[3] = "香精煎鱼";
names[4] = "食不食油饼";
// String i = "hello";
//3.如何获取数组长度
System.out.println(names.length);
System.out.println(ids.length);
//4.如何遍历数组 循环遍历
System.out.println(names[1]);
for(int i = 0;i < names.length;i++) {
System.out.println(names[i]);
}
System.out.println();
//5.数组元素的默认初始化值
// >数组元素是整型的所有初始化值都是0
// >数组元素是浮点型的所有初始化值都是0.0
// >数组元素是布尔型的所有初始化值都是false
// >数组元素是字符型的所有初始化值都是ASCII中的0或'\u0000',而非'0'
// >数组元素是字符串类型的所有初始化值是null
int[] arr = new int[5];
// short[] arr1 = new short[5];
double[] arr2 = new double[5];
boolean[] arr3 = new boolean[5];
char[] arr4 = new char[5];
String[] arr5 = new String[5];
for(int j = 0; j < arr.length; j++) {
System.out.println(arr[j]);
System.out.println(arr2[j]);
System.out.println(arr3[j]);
System.out.println(arr4[j]);
System.out.println(arr5[j]);
}
System.out.println("***********");
if(arr4[3] == 0) {
System.out.println("你好"); //证明字符数组初始默认值进行判断==0能运行
}
6.多维数组的使用
java语言提供了支持多维数组的语法。
如果说可以把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格。
对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。
class Test {
public static void main(String[] args) {
//二维数组的初始化
int[] arr = new int[]{1,2,3,4}; //静态初始化
int[][] arr1 = new int[][]{{1,2,3},{4,5,6},{7,8}}
//动态初始化
int[][] arr2 = new int[3][2];
int[][] arr3 = new int[3][];
//错误动态二维写法
int[][] arr3 = new int[][2];
//结论:二维数组能省略列,但是不能省略行
}
}