复习一下Java数组的知识
Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的,只能改变数组元素的值。
Java中的数组必须初始化后才可以使用 ,更准确的说应该是数组对象必须初始化,而数组变量不需要初始化,数组变量只需要指向一个有效的数组对象即可正常使用。
-
数组的初始化方式分为:
- 静态初始化:初始化时由开发人员显示的指定每个数组元素的初始值,由系统决定数组长度;
- 动态初始化:初始化时开发人员只指定数组长度,由系统为数组元素分配初始值。
基本类型数组的初始化如下:
public static void main(String args[]){
//静态初始化
String[] names = {"孙悟空","猪八戒","鲁智深"};
//动态初始化
String[] values = new String[5];
values[0] = "孙悟空"
values[1] = "猪八戒"
values[2] = "鲁智深";
//数组变量
String[] arr;
arr = names;
System.out.println(arr.length);
}
- 引用类型数组的元素依然是引用类型,因此数组里面存储的还是引用,它指向另外一块内存,这块内存里存储了该引用变量所引用的对象。对象引用如下:
public class Person{
public int age;
public String name;
public void info(){
System.out.println("age"+ age + "name" + name);
}
}
public static void main(String args[]){
//数组变量
Person[] p;
//动态初始化
p = new Person[2];
System.out.println(p.length);
Person zhang = new Person();
zhang.age = 18;
zhang.name = "zhangsan";
Person li = new Person();
li.age = 20;
li.name = "lisi";
p[0] = zhang;
p[1] = li;
li.info();
p[1].info();
}
- 多维数组
没有多维数组,所谓多维数组其实只是数组元素依然是数组的1维数组。
多维数组代码如下:
public static void main(String args[]){
int[][] a;
a = new int[4][];
for(int i = 0; i< a.length;i++){
System.out.println(a[i]);
}
a[0] = new int[2];
a[0][1] = 6;
for(int i = 0; i< a[0].length;i++){
System.out.println(a[0][i]);
}
}