java - new type[0] 和 null 之间的区别 - java

标签 java arrays null

有什么区别

type[] a = new type[0];

type[] a = null;

这两种形式都占用内存吗?有什么相同点/不同点吗?

最佳答案

第一个(new type[0])实际上会创建一个数组对象(因此占用内存)。您可以使用(大小为 0 的)数组对象,例如获取其长度或对其进行迭代,但当然,您可以不访问其任何元素。因此,您可以将它传递给任何不对数组长度做出假设(而是进行适当检查)的函数,并且它会起作用。

第二个 (null) 不创建任何对象。如果您尝试访问任何成员,您将得到一个异常(exception)。

关于java - new type[0] 和 null 之间的区别 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31022272/

相关文章:

java - JVM 崩溃 hs_err_pidXXXX.log 文件已创建。但是没有生成 hprof 文件

java - 如何在 RDF4J(以前的 Sesame)中合并两个或多个模型?

java - 一遍又一遍地初始化重复任务的最佳实践是什么

c++ - 在C++头文件中初始化一个数组

java - MySQL 使用 Hibernate 将 null boolean 值映射到 Java

java - ImageIO.read() 失败,无异常且 url 有效

java - 如何获取SD卡事件?

python - 为什么我教授的 LU 分解版本比我的快? python NumPy

sql-server - 将值赋给 Null 在十进制类型上抛出错误

java - Android Sqlite db.insert 带 null