数组本身是 引用数据类型 ,而数组中的元素可以是任何数据类型,包括
基本数据类型
引用数据类型
函数传参数组时,需要注意会改变原数组
创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是 这块连续空间的首地址。
数组的长度一旦确定,就不能修改。
String[] b=new String[5];
System.out.printIn(b);
// String代表引用数据类型,输出b 输出首地址
// 输出: [Ljava.lang.String;@2f2c9b19
一维数组的声明方式
type var[] 或 type[] var;
数组定义和生成
int a[] = new a[5];
int a[]={1,2,3}
注意:数组初始化完成后,java会自动赋予数组默认值。
数组在内存中的存储情况
数组名是代表地址空间…
int a[]={1,2,3}; String b[]={"aa","bb","cc"} ;
a=b 之后ab指向同一个地址空间,** ab里面互相影响。**
二维数组的定义与遍历 foreach
int a[][]= new int[2][3];
for(int[] i : a){for(int j : i){System.out.println(j);}
}
int[][] arr = new int[3][]; 合法!
# 因为只定义了一个一维数组,其一维数组的指向为null
同样 arr4 指向一个一维数组,这个一维数组的内容是 指向下一个一维数组的地址。arr4[ 0 ] 又是一维数组
java.util.Arrays 类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。
boolean equals(int[] a,int[] b)
判断两个数组是否相等。String toString(int[] a)
输出数组信息。 void fill(int[] a,int val)
将指定值填充到数组之中。void sort(int[] a)
对数组进行排序。int binarySearch(int[] a,int key)
对排序后的数组进行二分法检索指定的值。