JAVA数组--引用数据类型
1.数组的初始化
1.1 动态初始化(声明并开辟数组)
    数据类型[ ] 数组名称 = new 数据类型 [长度]
eg:  int [ ]data =new int [5];
a. 数组通过下标索引取得元素,下标默认从0开始。数组下标超出数组长度,数组越界异常(运行时异常)
 
b. 数组中每个元素都有默认值,默认值是该数据类型默认值。
c. 数组名称,length: 取得数组长度
d.数组遍历推荐使用for-each循环(仅限于数组内容读取),要修改数组内容,还是常规for循环
    for(int x : data){
            System.out.print(x + " ");
}
数组属于引用数据类型,使用前必须初始化。否则会NullPowerException。(运行时异常)
 
引用传递:多个栈内存指向同一块内存。
 
1.2 数组静态初始化
简化格式:
    数据类型[ ] 数组名称 = {值, 值...}
完整格式(推荐):
    数据类型[ ] 数组名称 = new 数据类型 [ ]{值, 值.....}
eg:
    int[ ]data = new int {1,3,5,7,9,10};
    
在数组定义时直接设置内容,根据值的个数确定数组长度,并且长度不可修改。
 
1.3 二维数组
动态初始化
数据类型[ ][ ] 数组名称  = new 数据类型[ 行个数] [列个数 ]
eg:int[][] data = new int [3][4];
 
静态初始化
数据类型[][] 数组名称 = new 数据类型[][] {{第一行的值},{第二行的值},...}
 
数组与方法的互操作--引用传递
方法接收数组
方法返回数组
方法修改数组
 
Java对数组的支持(应对笔试,可直接调用)
1、排序---java.util.Arrays.sort(数组名称);
    支持所有基本数据类型数组
    内部使用双轴快速排序
2、数组的部分拷贝
    System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
3、数组全拷贝(*****)
    java.util.Arrays.copyOf(源数组名称,新数组长度) 返回值:int[ ]
    java动态数组动态扩容方法