java数组
1 基本概念
数组初始化
a.在数组创建的地方进行初始化,如:
int[] arr1 = {1,2,3,4,5};
这种方式等价于使用new来进行存储空间分配。
b.给数组的引用赋值,如:
int[] arr1 = {1,2,3,4,5};
int[] arr2;
arr2 = arr1;
c.当不确定数组元素的个数时的数组创建
当数组元素个数不确定时,我们可以直接使用new在数组里创建元素。注意new可以应用于基本类型的数组,但是不能应用于单个的基本类型。
数组只能用等号初始化
2 数组存的是地址
3 java内存结构底层讲解
具有相同的地址
两个new就是两个数组(说的是堆里的东西)
4 数组索引越界异常
5 空指针异常
6 数组的长度
7数组对称交换位置
8 数组作为参数传递
9 Arrays
Arrays.toString()数组转字符串
Arrays.sort()排序
Sort底层用的是快速排序。 效率高
binarySearch 二分法排序
这里出现-2的情况是12为1号 然后变相反数,然后-1.
源码
10 toString源码
11java数组遍历
1.for循环遍历
通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
2.Arrays工具类中toString静态方法遍历
利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出。
程序示例:
3.foreach语句遍历
java5之后,Java提供了一种更简洁的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。
注意:使用foreach循环迭代数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量赋值。例如:
public static void main(String [] args){
int [] arr={1,2,3,4,5};
for(int a:arr){
a=0;
System.out.print(a);
}
System.out.print(“\n”+a[0]);
}
运行结果:
00000
1
从上面结果可以看出,由于在foreach循环中对数组进行赋值,结果导致不能正确遍历数组元素。而且当再次访问第一个数组元素时,发现数组元素依然没有改变。