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循环中对数组进行赋值,结果导致不能正确遍历数组元素。而且当再次访问第一个数组元素时,发现数组元素依然没有改变。