如果一个 int 数组的各个元素没有被初始化,那么它们默认存储的是什么?我显然发现有类似空数组或空数组的东西。有什么区别,哪个适用于我的第一个问题?
原文由 user4360892 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果一个 int 数组的各个元素没有被初始化,那么它们默认存储的是什么?我显然发现有类似空数组或空数组的东西。有什么区别,哪个适用于我的第一个问题?
原文由 user4360892 发布,翻译遵循 CC BY-SA 4.0 许可协议
数组将其成员初始化为其默认值。对于 int
默认值为 0。对于 Object
是 null
。 null
数组是 null
数组引用(因为数组是 Java 中的引用类型)。
JLS-4.12.5 变量初值 部分说
对于 int 类型,默认值为零,即 0。
和
对于所有引用类型(§4.3),默认值为 null。
原文由 Elliott Frisch 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.1k 阅读
8 回答6.3k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.1k 阅读✓ 已解决
从技术上讲,没有 空数组 这样的东西;但由于数组是对象,数组类型是引用类型(即:数组变量仅包含对数组的 _引用_),这意味着数组变量可以是
null
而不是实际指向数组:空 数组是长度为零的数组;它没有元素:
(并且 永远不能 有元素,因为数组的长度在创建后永远不会改变)。
当您创建一个 非 空数组而不为其元素指定值时,它们默认为类似零的值
0
对于整数数组,null
对于对象类型的数组, ETC。;所以这:与此相同:
(虽然这些值之后可以重新分配;数组的长度不能改变,但它的元素可以改变)。