面試官: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 重磅發布,黑暗模式太炸了!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM