You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手数组技术咨询:创建对象数组时会发生什么?

对象数组创建的本质解析

嘿,这个问题问到点子上了,很多刚接触对象数组的开发者都会在这里绕晕~先直接给结论:正确选项是d,下面我逐个拆解每个选项帮你彻底搞懂:

核心原理先明确

当你用类似 SomeClass[] arr = new SomeClass[10]; 这样的代码创建对象数组时,JVM会做这两件事:

  1. 分配一块内存空间,用来容纳10个SomeClass类型的对象引用(注意,是引用,不是对象本身)
  2. 把每个引用位置的初始值设为null(因为引用类型的默认初始值是null)

现在来看每个选项:

  • 选项a:错误。对象数组的元素是引用类型,初始值只会是null,0是基本类型数组(比如int[])的初始值,这里混淆了基本类型和引用类型数组的初始化逻辑。
  • 选项b:错误。创建数组的过程完全不会自动关联程序里之前创建的任何对象,这些引用位置一开始都是空的,只有你手动赋值(比如arr[0] = new SomeClass();)后,才会指向具体对象。
  • 选项c:错误。数组里存储的是对象的引用,不是对象本身;而且也不会自动包含之前创建的对象,完全是空白的引用容器。
  • 选项d:正确。数组本质就是一个存储引用的容器,创建时只是开辟了对应数量的引用存储位置,这些位置的内容(也就是指向的对象)是未填充的(初始为null,相当于“内容未完整”),需要你后续手动赋值来完善。

内容的提问来源于stack exchange,提问作者lupul666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:17:29