面试官:new Object[5] 一共创建了几个对象?
Java 数组中new Object[5]语句是否创建了5个对象?
Java 数组的本质是一个Java类,它是通过new语句来实例化,但是这个new语句却不会实例化数组中的对象,我们对它的理解有些偏差。
对于基本类型的数组,在new语句创建数组实例时,会为该数组分配指定长度的内存空间,并把数组的每个元素的初始化为0。
那么,引用类型的数组又是如何来创建和初始化这些内存空间的?
其实,引用数据类型的数组也会分配指定长度的内存空间,只不过这些内存空间是用来保存引用的,而不是具体的值,它的初始化值为null。
Object[]obj=new Object[5];
以上代码中,创建了一个Object数组,长度为5,这5个元素的值都是null,然后把创建好的数组实例的引用赋给obj变量。如果需要为这些元素分配具体的对象,则需要分别指定或用{}符号进行初始化,如下所示:
Object[]obj=new Object[]{new Object(),null,null,null,new String("123")};//引用类型的数组
或
obj[0]=new Object();//数组元素在赋对象引用
obj[4]=new String("123");
以上数组实例的内存构成,如图:
总结:
答案为否。
其实是创建了一个数组实例,长度为5,每个数组元素的值均为null,并没有创建5个Object对象。如果需要创建5个Object对象,则需要为每个数组元素分别指定或用符号{}。
本文链接:https://blog.csdn.net/qq_33642117/article/details/52214403
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2021最新版)
2.别在再满屏的 if/ else 了,试试策略模式,真香!!
3.卧槽!Java 中的 xx ≠ null 是什么新语法?
4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!
觉得不错,别忘了随手点赞+转发哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2020-11-17 厉害了,淘宝千万并发,14 次架构演进…
2020-11-17 微服务中 Zookeeper 应用及原理