3 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個贊
基本類型就是數(shù)據(jù)。另一方面,我們所謂的對象只是指向數(shù)據(jù)存儲位置的指針。例如:
Integer object = new Integer(3);
int number = 3;
在這種情況下,object它只是指向值恰好為3的Integer對象的指針。也就是說,在存儲變量對象的內(nèi)存位置,您所擁有的只是對數(shù)據(jù)實(shí)際位置的引用。number另一方面,存儲的存儲位置直接包含值3。
因此,您可以將設(shè)置object為null,但這僅表示該對象的數(shù)據(jù)為null(即未分配)。您不能將int設(shè)置為null,因?yàn)樵撜Z言會將其解釋為值0。
希望有幫助!

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
因?yàn)镴ava中的原始數(shù)據(jù)類型不是Objects。您始終可以使用包裝器類之一來創(chuàng)建一個Object。八個原始數(shù)據(jù)類型中的每一個都有其對應(yīng)的包裝器:
字節(jié): java.lang.Byte
短: java.lang.Short
整數(shù): java.lang.Integer
長: java.lang.Long
浮動: java.lang.Float
雙: java.lang.Double
布爾值: java.lang.Boolean
燒焦 java.lang.Character
如果您對整個結(jié)構(gòu)感興趣,則可以從此處開始(原始數(shù)據(jù)類型)。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個贊
對象比基本方法涉及更多的開銷。以下測試顯示int的執(zhí)行速度比Integer快10倍。
int n;
EtmPoint point1 = etmMonitor.createPoint("test:objects");
for (n = 0; n < 1000000; n++) {
Integer t = 0;
t = 10;
t = 11;
}
point1.collect();
EtmPoint point = etmMonitor.createPoint("test:primitives");
for (n = 0; n < 1000000; n++) {
int t = 0;
t = 10;
t = 11;
}
point.collect();
etmMonitor.render(new SimpleTextRenderer());
這就是.net實(shí)現(xiàn)可空基元的原因,不幸的是Java沒有可空基元。
添加回答
舉報