面試官:new Object[5] 一共創(chuàng)建了幾個對象?
Java 數(shù)組中new Object[5]語句是否創(chuàng)建了5個對象?
Java 數(shù)組的本質(zhì)是一個Java類,它是通過new語句來實例化,但是這個new語句卻不會實例化數(shù)組中的對象,我們對它的理解有些偏差。
對于基本類型的數(shù)組,在new語句創(chuàng)建數(shù)組實例時,會為該數(shù)組分配指定長度的內(nèi)存空間,并把數(shù)組的每個元素的初始化為0。
那么,引用類型的數(shù)組又是如何來創(chuàng)建和初始化這些內(nèi)存空間的?
其實,引用數(shù)據(jù)類型的數(shù)組也會分配指定長度的內(nèi)存空間,只不過這些內(nèi)存空間是用來保存引用的,而不是具體的值,它的初始化值為null。
Object[]obj=new Object[5];
以上代碼中,創(chuàng)建了一個Object數(shù)組,長度為5,這5個元素的值都是null,然后把創(chuàng)建好的數(shù)組實例的引用賦給obj變量。搜索公眾號互聯(lián)網(wǎng)架構(gòu)師復(fù)“2T”,送你一份驚喜禮包。
Object[]obj=new Object[]{new Object(),null,null,null,new String("123")};//引用類型的數(shù)組
obj[0]=new Object();//數(shù)組元素在賦對象引用
obj[4]=new String("123");
以上數(shù)組實例的內(nèi)存構(gòu)成,如圖:

答案為否。
其實是創(chuàng)建了一個數(shù)組實例,長度為5,每個數(shù)組元素的值均為null,并沒有創(chuàng)建5個Object對象。
本文鏈接:https://blog.csdn.net/qq_33642117/article/details/52214403
感謝您的閱讀,也歡迎您發(fā)表關(guān)于這篇文章的任何建議,關(guān)注我,技術(shù)不迷茫!小編到你上高速。
正文結(jié)束
1.心態(tài)崩了!稅前2萬4,到手1萬4,年終獎扣稅方式1月1日起施行~
2.深圳一普通中學(xué)老師工資單曝光,秒殺程序員,網(wǎng)友:敢問是哪個學(xué)校畢業(yè)的?
3.從零開始搭建創(chuàng)業(yè)公司后臺技術(shù)棧

