基本概念
首先数组指的就是一组相关类型的变量集合,同时数组本身属于引用数据类型,数组元素被分配到一段连续的地址中,同时应注意数组元素被储存在堆区,其中数组的首地址即为数组首元素的地址
数组初始化
- 动态初始化:数据类型 [] 数组名称 =
new
数据类型[长度];(我们数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值,例如整形即为0,布尔型即为false……) - 静态初始化:数据类型 [] 数组名称 =
new
数据类型[长度]{数组元素、数组元素……}(或者直接用 数据类型 [] 数组名称 = {数组元素、数组元素……}) - 以上两种初始化时 数据类型 [] 数组名称 均可写成 数据类型 数组名称[]
数组的唯一属性
在 Java
中提供有一种动态取得数组长度的方式:数组名称.length;
存取数组元素
- 对于静态初始化的数组一旦初始化后,长度国定,所以不能再往数组中添加新的元素,但是可以用新元素替换掉旧的元素
- 对于动态初始化的数组可以采用:数组名[下标] = 元素;进行存储(下标范围是
0
~ 数组长度-1,通常利用for循环进行赋值)
- 取得数组中元素方法:数据类型 变量名 = 数组名[下标]
范例(声明数组同时开辟内存空间)
public class Array {
public void test{
int data[] = new int[3]; /*声明并开辟了一个长度为3的数组*/
data[0] = 10; // 第一个元素
data[1] = 20; // 第二个元素
data[2] = 30; // 第三个元素
}
}
范例(先声明数组后开辟内存空间)
public class Array {
public void test{
int data[] = null;/*声明了一个长度为3的数组*/
data = new int[3]; /*为该数组开辟了一个长度为3的整形数组空间*/
data[0] = 10; // 第一个元素
data[1] = 20; // 第二个元素
data[2] = 30; // 第三个元素
}
}
警告:如果只声明但不为数组开辟空间,则会出现异常
public class Array {
public void test{
int data[] = null;/*声明了一个长度为3的数组*/
/*但并为其开辟空间*/
data[0] = 10; // 第一个元素
data[1] = 20; // 第二个元素
data[2] = 30; // 第三个元素
}
}
数组的引用传递
public class ArrayDemo {
public static void main(String args[]) {
int data[] = null;
//此时data[]只有栈内存
data = new int[3]; //开辟一个长度为3的数组
//此时数组具有堆内存的三个整型数组元素,默认值是零
data[0] = 10;
data[1] = 20;
data[2] = 30;
//此时栈内存的data[]可指向堆内存的三个已被赋值的数组元素
}
}
二维及高维数组
由于实际开发中用到很少,此处省略~~