有区别吗
int[] b = new int[a.length];
b=a;
和
int[] b = a;
在java中?
最佳答案
它们大部分相同,但也有一些差异:
- 一般来说,第一个将创建一个立即变得无法访问的数组(符合垃圾回收的条件),因此实际上不存在。 (在这两个版本中,
b
最终都会引用与a
相同的数组,除了下面的注意事项。) - 如果
a
为null
,则第一个将抛出NullPointerException
。 - 如果运气不好,第一个可能会抛出
OutOfMemoryError
或类似错误。 - 第一个更有可能导致编译器警告、FindBugs 警告等。
关于java - int[] b = new int[a.length] b=a 和 int[] b = a 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24421822/