day05 - 数组
数组
定义格式:
数据类型[] 变量名 = new 数据类型[长度];
数据类型 变量名[] = new 数据类型[长度];
数组名:存储的是数组变量的内存地址(首地址)
数组名.length : 数组的长度(.Length 是一种属性)
数组2 = 数组1;
//是把数组1的内存地址给了数组2,使数组2也指向数组1 的内存地址以及其中的数据,以数组2[i] = a的方式修改数据,相应的数组1[i]也变成了a。
初始化方式:
动态初始化:数据类型[] 变量名 = new 数据类型[长度];
静态初始化:数据类型[] 变量名 = {元素1,元素2......};
如果程序一开始就确定了有哪些数据,那么这时候就建议使用静态初始化。
PS.两者内存图相同的,都会在堆内存中创建对象。
内存图:
栈内存:存储的都是局部变量,变量一旦出了自己的作用域,那么马上会从内存中消失,释放内存空间。
凡是以new关键字创建的对象,Jvm都会在堆内存中开辟一个新的空间,创建一个新的对象。
堆内存:存储的都是对象数据(引用类型数据),对象被使用完,并不会马上从内存中消失,而是等待垃圾回收器不定时的把垃圾对象回收,这时候该对象才会消失,释放内存。
局部变量:在一个方法的内部声明。
成员变量:定义在方法之外,类之内。
Array 数组工具包
二维数组的定义格式:
数据类型[][] 变量名 = new 数据类型[行数][列数];
数组名.length -> 二维数组的行数
数组名[i].length -> 二维数组第i行的列数
Java允许二维数组每行的元素个数不同
二维数组的初始化方式:
动态初始化:
数据类型[][] 变量名 = new 数据类型[长度1][长度2];
静态初始化:
数据类型[][] 变量名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...} ..}
浙公网安备 33010602011771号