Java数组初始化赋值的方式有很多,下面我们详细介绍一下。
声明数组并分配内存空间
1、使用new关键字创建数组:
int[] arr = new int[5]; // 创建一个长度为5的整型数组
2、使用花括号直接初始化数组:
int[] arr = {1, 2, 3, 4, 5}; // 创建一个包含5个元素的整型数组
声明数组并指定初始值
1、使用new关键字创建数组并指定初始值:
int[] arr = new int[]{1, 2, 3, 4, 5}; // 创建一个整型数组并指定初始值
2、使用花括号直接初始化数组并指定初始值:
int[] arr = {1, 2, 3, 4, 5}; // 创建一个整型数组并指定初始值
声明数组并自动初始化
1、使用new关键字创建数组并自动初始化:
int[] arr = new int[]{}; // 创建一个整型数组并自动初始化为0
2、使用花括号直接初始化数组并自动初始化:
int[] arr = {}; // 创建一个整型数组并自动初始化为0
多维数组的初始化赋值
1、声明多维数组并分配内存空间:
int[][] arr = new int[3][4]; // 创建一个3行4列的整型二维数组
2、声明多维数组并指定初始值:
int[][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; // 创建一个3行4列的整型二维数组并指定初始值
静态初始化块和静态变量的初始化顺序问题(JVM保证)
在Java中,静态变量和静态初始化块的初始化顺序是不确定的,但是有一个特点:静态变量只会被初始化一次,而静态初始化块只会在类加载时执行一次,如果有静态变量和静态初始化块同时存在,那么它们之间的初始化顺序是由JVM来保证的。
public class Test { static int a; // 静态变量a static int b; // 静态变量b { // 静态初始化块a() a = 1; } // 在静态初始化块a()之后定义了静态变量b(),那么b()将不会被执行到,因为JVM保证了a()会在b()之前执行,所以b()的值将不会被改变,如果去掉a(),那么b()将会被执行到,并且其值将会被改变,因为此时a()已经不再存在,所以JVM会保证b()在所有其他静态变量和静态初始化块之后执行,这就是JVM对于静态变量和静态初始化块的初始化顺序的规定。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/182667.html