欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA - 数组初始化

程序员文章站 2022-04-05 16:07:17
...

JAVA的数组变量是引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用该数组变量。声明数组只是得到了一个数组的引用并为该引用分配了存储空间,但是并没有给数组对象本身分配任何空间。想要给数组对象分配存储空间,必须进行初始化

* 默认初始化

数组元素相当于对象的成员变量,默认值跟成员变量的规则一样

int                        0

float                     0.0f

double                 0.0

boolean               false

char                     ' '

引用数据类型        null

* 静态初始化

在数组创建的地方进行初始化,采用这种初始化的方式,数组的存储空间的分配是由编译器完成的当创建一个非基本类型的数组时,实际上创建的是引用数组可以直接使用new在数组里创建元素

:new可应用于基本类型的数组,但是不能应用于单个的基本类型

int[] arr1 = {1,2,3,4,5};

Integer[] arr2 = {new Integer(1), new Integer(2), new Integer(3)};

注:这种声明方式其实只是Java初始化数组的语法糖,其等价于int[] arr1 = new int[]{1,2,3,4,5};

* 动态初始化方式一

new声明,之后分别初始化数组中的每个元素,声明时需指定数组大小

注:如果数组元素类型为基本数据类型,在完成new 操作之后,数组中的元素会自动初始化为空值,可以直接使用,但是数组元素为引用类型,在完成new操作之后,没有给引用类型赋值,就直接使用数组中的元素,会产生运行时异常

int[] array2 = new int[3];  
array2[0] = 1;  
array2[1] = 2;  
array2[2] = 3;  

* 动态初始化方式二

new声明的同时初始化,这种方式不能指定数组的大小,数组大小由初始化列表中数据个数决定

int[] array3 = new int[]{1,2,3};  

* 给数组的引用赋值

int[] arr1 = {1,2,3,4,5};
int[] arr2;
arr2 = arr1;

注:Java实际上没有多维数组,只有释为“数组的数组。”,因此可以方便地构造一个“不规则”数组,即数组的每一行有不同的长度:

int[][] balances = new int[LineNum + 1][];
for(int n = 0; n < balances.length; n++) {
    balances[n] = new int[n+1];
}
System.out.println(Arrays.deepToString(balances));

其内存分配如图所示:

JAVA - 数组初始化
相关标签: 数组