Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在声明之后初始化数组_Java - Fatal编程技术网

Java 在声明之后初始化数组

Java 在声明之后初始化数组,java,Java,为什么在声明变量后不能使用数组初始化器 例如: int arr[]; arr = {1,2,3,4}; 但是, 这是正确的。 在声明变量后,是否有任何方法可以使用数组初始化。这就是您可以使用的方法 int arr[]; arr = new int[]{1, 2, 3, 4}; 因为数组在java中不是这样工作的 int arr[4]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; 例如:- int data[] = new int

为什么在声明变量后不能使用数组初始化器

例如:

int arr[];
arr = {1,2,3,4};
但是,

这是正确的。 在声明变量后,是否有任何方法可以使用数组初始化。

这就是您可以使用的方法

int arr[];

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

因为数组在java中不是这样工作的

int arr[4];
arr[0] = 1; 
arr[1] = 2; 
arr[2] = 3; 
arr[3] = 4;

例如:-

int data[] = new int[] {10,20,30,40,50,60,71,80,90,91 };


创建数组、声明数组、分配数组和初始化数组有三个步骤

声明数组 与Java中的其他变量一样,数组必须具有特定类型,如byte、int、String或double。数组中只能存储适当类型的变量。例如,不能有一个同时存储整数和字符串的数组

与Java中的所有其他变量一样,必须声明数组。声明数组变量时,可以在类型后面加上[]后缀,以指示此变量是数组。以下是一些例子:

int[]k; 浮动[]yt; 字符串[]名称

换句话说,声明数组就像声明任何其他变量一样,只是在变量类型的末尾附加了括号

分配数组 声明数组仅仅说明它是什么。它不会创建数组。要实际创建数组(或任何其他对象),请使用新操作符。当我们创建一个数组时,我们需要告诉编译器它将存储多少个元素。下面是我们如何创建上面声明的变量:

k=新整数[3]; yt=新浮点数[7]; 名称=新字符串[50]

括号中的数字指定数组的尺寸;i、 e.它必须容纳多少个插槽的值。上面的维度k可以容纳三个整数,yt可以容纳七个浮点数,name可以容纳五十个字符串。因此,此步骤有时称为对阵列进行尺寸标注。更常见的是,这被称为分配阵列,因为这一步骤实际上在RAM中留出了阵列所需的内存

这也是我们第一次看到新的运营商。new是java中的一个保留字,它不仅用于分配数组,还用于分配所有类型的对象。Java数组是具有所有这些含义的成熟对象。就目前而言,这意味着我们必须为它们分配新的资源

初始化阵列 数组的各个元素由数组名和一个表示它们在数组中位置的整数引用。我们用来识别它们的数字称为数组中的下标或索引。下标是以0开头的连续整数。因此,上面的数组k具有元素k[0]、k[1]和k[2]。因为我们从零开始计数,所以没有k[3],尝试访问它将生成ArrayIndexOutOfBoundsException

可以在任何地方使用数组元素,只要使用类型类似的变量,而该变量不是数组的一部分

下面是我们如何将值存储在我们一直使用的数组中:

k[0]=2; k[1]=5; k[2]=-2; yt[6]=7.5f; 姓名[4]=“弗雷德”

我们甚至可以同时声明、分配和初始化数组,并在括号内提供一个初始值列表,如:

int[]k={1,2,3}; float[]yt={0.0f,1.2f,3.4f,-9.87f,65.4f,0.0f,567.9f}


@sᴜʀᴇsʜᴀᴛᴛᴀ - 这与您链接的问题不同。这将在内存中创建一个新数组否?这将在内存中仅创建一个数组。我原以为第一行将在内存中创建一个数组,但结果表明它仅在堆栈上创建一个数组引用,更多详细信息:
int data[] = new int[] {10,20,30,40,50,60,71,80,90,91 };
int data[];

data=new int[] {10,20,30,40,50,60,71,80,90,91 };