【发布时间】:2023-03-06 17:25:02
【问题描述】:
以下两个声明有区别吗?
int arr[] = new int [5];
和
int arr1[] = {1,2,3,4,5};
arr1 是声明在栈上还是堆上?
【问题讨论】:
-
数组是java中的一个对象..所以它存储在堆上
-
@Prasanna no,就像对象中
int字段的值存储在堆上一样。 -
@PrasannaKumar 与对象中的 int 实例变量的情况相同。它驻留在对象内的堆中;在数组的情况下相同。
-
@Prasanna 只是一个原语并不意味着它驻留在堆栈中。局部原始变量在堆栈上;包含在对象中的原语包含在对象中,并且对象总是堆分配的。
-
注意你也可以
new int []{1,2,3,4,5}。
标签: java arrays new-operator