原始数据类型的数组可以实例化吗?
Can array of primitive data type be instantiated?
在java中创建一个class的数组时,需要三个步骤:声明、实例化和初始化。
但是在创建原始数据类型数组时,new关键字是实例化还是初始化?
我发现它令人困惑,因为在许多地方实例化一词仅用于 class/classes 的数组。所以,我想知道实例化步骤是否也用于 PRIMITIVE 数据类型的数组。或者,是不是整个初始化数组的语句如下所示
int intArray[]; //declaring array
intArray = new int[20]; // allocating memory to array
在 Java 中,当我们实例化一个原始数组(如 new int[10]
)时,数组中的项目将使用该原始数组的默认值进行初始化。 (int
的默认值为 0
,boolean
的默认值为 false
等)
当我们实例化一个对象数组(例如String
数组)时,数组中的项目被初始化为null
。
参见下面的程序及其输出。
public class PrimitiveArray
{
public static void main(String[] args)
{
int[] intArray = new int[10];
boolean[] booleanArray = new boolean[10];
String[] stringArray = new String[10];
System.out.println("intArray[3] = " + intArray[3]);
System.out.println("booleanArray[3] = " + booleanArray[3]);
System.out.println("stringArray[3] = " + stringArray[3]);
}
}
输出为:
intArray[3] = 0
booleanArray[3] = false
stringArray[3] = null
Can array of primitive data type be instantiated?
是的。
Does the new
keyword in new int[20]
instantiate or initiate?
在那个例子中,它既实例化原始数组,又初始化它1到原始类型的 default 值;即对于原始数字类型的数组为零,对于 boolean
.
的数组为 false
另一方面:
int intArray[];
是声明一个数组变量,既没有初始化变量,也没有实例化数组。如果那是局部变量声明,编译器将不允许您使用该变量,直到它被分配给。如果是字段,那么变量会默认初始化为null
;即没有数组被实例化。
Java 不允许程序访问未初始化的变量或数组元素,无论是显式初始化还是通过 default 初始化。这是语言的基础属性。
1 - 正确的术语是 initialize 而不是 initiate。 Initiate(英文)的意思是“开始”(例如一个动作或过程)或“承认(某人)进入一个秘密或隐蔽的社会或团体,通常是通过仪式。”。这不是本文中的正确含义。
在java中创建一个class的数组时,需要三个步骤:声明、实例化和初始化。 但是在创建原始数据类型数组时,new关键字是实例化还是初始化?
我发现它令人困惑,因为在许多地方实例化一词仅用于 class/classes 的数组。所以,我想知道实例化步骤是否也用于 PRIMITIVE 数据类型的数组。或者,是不是整个初始化数组的语句如下所示
int intArray[]; //declaring array
intArray = new int[20]; // allocating memory to array
在 Java 中,当我们实例化一个原始数组(如 new int[10]
)时,数组中的项目将使用该原始数组的默认值进行初始化。 (int
的默认值为 0
,boolean
的默认值为 false
等)
当我们实例化一个对象数组(例如String
数组)时,数组中的项目被初始化为null
。
参见下面的程序及其输出。
public class PrimitiveArray
{
public static void main(String[] args)
{
int[] intArray = new int[10];
boolean[] booleanArray = new boolean[10];
String[] stringArray = new String[10];
System.out.println("intArray[3] = " + intArray[3]);
System.out.println("booleanArray[3] = " + booleanArray[3]);
System.out.println("stringArray[3] = " + stringArray[3]);
}
}
输出为:
intArray[3] = 0
booleanArray[3] = false
stringArray[3] = null
Can array of primitive data type be instantiated?
是的。
Does the
new
keyword innew int[20]
instantiate or initiate?
在那个例子中,它既实例化原始数组,又初始化它1到原始类型的 default 值;即对于原始数字类型的数组为零,对于 boolean
.
false
另一方面:
int intArray[];
是声明一个数组变量,既没有初始化变量,也没有实例化数组。如果那是局部变量声明,编译器将不允许您使用该变量,直到它被分配给。如果是字段,那么变量会默认初始化为null
;即没有数组被实例化。
Java 不允许程序访问未初始化的变量或数组元素,无论是显式初始化还是通过 default 初始化。这是语言的基础属性。
1 - 正确的术语是 initialize 而不是 initiate。 Initiate(英文)的意思是“开始”(例如一个动作或过程)或“承认(某人)进入一个秘密或隐蔽的社会或团体,通常是通过仪式。”。这不是本文中的正确含义。