数组的定义与使用:
double hens[];
hens = double[10];//方法一
double[] hens = new double[5];//方法二
double[] hens ={0};//静态初始化,初始化过后不能再次赋值
a = hens[2];// 索引从0开始
数组的数据类型是引用类型。
数组的长度通过调用数组类的方法: .length 来求
数组创建后,如不赋值,有默认的值
(图片来自韩顺平老师b站课程)
数组的赋值机制是引用传递,赋的是地址值,基本类型赋的是具体数据,值拷贝,值与值之间相互独立。
int[] arr1 = {0,1,2};
int[] arr2 = arr1;
arr[0] = 20;//由于数组是引用传递,因此改变数组组时,是改变对应内存单位存储的地址所对应的值。
如果需要只拷贝内容,也就是创建两个相互独立的数组时代码如下
int[] a = {0,1,2,3};
int[] b = new int[a.length];
for(int i = 0; i < a.length; i++);
b[i] = a[i];//实现只拷贝内容,创建独立数组
数组扩容\缩减方法:先创建一个新的数组,将添加值与原值拷贝进新数组,再将地址赋给原数组
即arr = arrNew;此时原数组指向新数组,原始数组的内存空间被销毁,完成扩容\缩减。
二维数组的定义:int[][] a={{},{}};一个括号就是一组,.length表示一维数组的个数
arr[].length表示一维数组的长度,arr[i]的为二维数组的某个元素数组
动态初始化:int a[][] = new int[][] int[] a[]
二维数组在内存中的存储方式为: 数组名指向一组内存,内存中的位置存的也是地址,地址指向的内存存放着下一维数组。可以满足多维数组中每一个小数组不为统一长度
方法为: int[][] a = new a[数字][不填]
再在下方对每个上维数组new 空间