java - 在 Java 中不使用 'new' 关键字声明数组

标签 java arrays new-operator

以下两个声明有区别吗?

int arr[] = new int [5];

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

arr1 是声明在栈上还是堆上?

最佳答案

明显的区别是一个全为零,另一个包含[1..5]。

但这是唯一的区别。两者都是 5 元素 int 数组,都以相同的方式分配。用大括号声明只是语法上的方便,没有 new

注意,这种形式只能在声明数组时使用:

int[] blah = {}

但不是

int[] blah;
blah = {};

return {};

对象(数组就是对象)在堆上分配。

关于java - 在 Java 中不使用 'new' 关键字声明数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032577/

相关文章:

java - 调用抽象类列表中的类的函数

c++ - 我的代码泄漏了。我该如何解决?

c# - 如果有意隐藏,请使用 new 关键字

java - new 运算符和 Class.newInstance() 有什么区别?

java - Java 中查找整数 ArrayList 中最小值的递归函数

java - SSL 异常 <kik.botframework.com>

php - 如何保持收集的数据库行的顺序与传递给 where 子句的数组相同

java - 即使我定义了类路径,javac 也无法识别它

java - 在Java中匹配${123...456}并提取2个数字?

java - 我正在编写一个程序来比较两个数组,但我无法让它将数组与空元素进行比较