Java 數(shù)組中new Object[5]語(yǔ)句是否創(chuàng)建了5個(gè)對(duì)象?
點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)
作者:王俊凱夫人
來(lái)源:blog.csdn.net/qq_33642117/article/details/52214403
對(duì)于基本類(lèi)型的數(shù)組,在new語(yǔ)句創(chuàng)建數(shù)組實(shí)例時(shí),會(huì)為該數(shù)組分配指定長(zhǎng)度的內(nèi)存空間,并把數(shù)組的每個(gè)元素的初始化為0。那么,引用類(lèi)型的數(shù)組又是如何來(lái)創(chuàng)建和初始化這些內(nèi)存空間的?
其實(shí),引用數(shù)據(jù)類(lèi)型的數(shù)組也會(huì)分配指定長(zhǎng)度的內(nèi)存空間,只不過(guò)這些內(nèi)存空間是用來(lái)保存引用的,而不是具體的值,它的初始化值為null。
Object[]obj=new?Object[5];
以上代碼中,創(chuàng)建了一個(gè)Object數(shù)組,長(zhǎng)度為5,這5個(gè)元素的值都是null,然后把創(chuàng)建好的數(shù)組實(shí)例的引用賦給obj變量。如果需要為這些元素分配具體的對(duì)象,則需要分別指定或用{}符號(hào)進(jìn)行初始化,如下所示:
Object[]obj=new?Object[]{new?Object(),null,null,null,new?String("123")};//引用類(lèi)型的數(shù)組
或
obj[0]=new?Object();//數(shù)組元素在賦對(duì)象引用
obj[4]=new?String("123");
以上數(shù)組實(shí)例的內(nèi)存構(gòu)成,如圖:

總結(jié)一下:
答案為否。其實(shí)是創(chuàng)建了一個(gè)數(shù)組實(shí)例,長(zhǎng)度為5,每個(gè)數(shù)組元素的值均為null,并沒(méi)有創(chuàng)建5個(gè)Object對(duì)象。
如果需要?jiǎng)?chuàng)建5個(gè)Object對(duì)象,則需要為每個(gè)數(shù)組元素分別指定或用符號(hào){}。
往 期 推 薦
3、Redis 作者:每天花6小時(shí)搞開(kāi)源,頂不住了!
5、上午寫(xiě)了一段代碼,下午就被開(kāi)除了,奇怪的知識(shí)又增加了!
7、真香!用 IDEA 神器看源碼,效率真高! 點(diǎn)分享
點(diǎn)收藏
點(diǎn)點(diǎn)贊
點(diǎn)在看





