当前位置: 首页 > 后端技术 > Java

面试官:newObject[5]中创建了多少个对象?

时间:2023-04-01 20:57:49 Java

Java数组中的newObject[5]语句是否创建了5个对象?Java数组的本质是一个Java类,它是通过new语句来实例化的,但是这个new语句并没有实例化数组中的对象,我们对它的理解有些偏差。对于基本类型的数组,new语句在创建数组实例时,会为数组分配指定长度的内存空间,并将数组的每个元素初始化为0。那么,引用类型的数组是如何实现的?创建并初始化这些内存空间?其实引用数据类型的数组也会分配一块指定长度的内存空间,只不过这些内存空间是用来存放引用的,而不是具体的值,它的初始化值为null。对象[]obj=新对象[5];上面代码中创建了一个长度为5的Object数组,这5个元素的值都是null,然后将创建的数组实例的引用赋值给obj变量。如果需要为这些元素分配具体的对象,需要单独指定或者用{}符号初始化,如下:Object[]obj=newObject[]{newObject(),null,null,null,newString("123")};//引用类型的数组orobj[0]=newObject();//数组元素在赋值对象中被引用obj[4]=newString("123");上面数组实例的内存构成,如图:总结:答案是否定的。实际上创建了一个长度为5的数组实例,每个数组元素的值为null,并没有创建5个Object对象。如果需要创建5个Object对象,则需要为每个数组元素指定或使用符号{}。本文链接:https://blog.csdn.net/qq_3364...版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明转载。近期热点文章推荐:1.1,000+Java面试题及答案(2021最新版)2.别在满屏的if/else中,试试策略模式,真的很好吃!!3.操!Java中xx≠null的新语法是什么?4、SpringBoot2.5发布,深色模式太炸了!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!