| 數(shù)據(jù)類(lèi)型 | 內(nèi)存占用字節(jié)數(shù) |
|---|---|
| byte | 1 |
| short | 2 |
| int | 4 |
| long | 8 |
| float | 4 |
| double | 8 |
| boolean | 1 |
| char | 2 |
-
計(jì)算機(jī)訪問(wèn)內(nèi)存時(shí)是一次一個(gè)字節(jié)
其中每8位為一個(gè)字節(jié)
1011 1101 1111 0000 (前8位一個(gè)字節(jié),后8位一個(gè)字節(jié))
-
一個(gè)應(yīng)用(機(jī)器地址)需要8個(gè)字節(jié)表示
創(chuàng)建一個(gè)對(duì)象,那么這個(gè)對(duì)象需要占用8個(gè)字節(jié)表示
-
當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),如new Object(),除了Object對(duì)象內(nèi)部?jī)?chǔ)存的數(shù)據(jù)占用的內(nèi)存
該對(duì)象本身也有內(nèi)存開(kāi)銷(xiāo),每個(gè)對(duì)象的自身開(kāi)銷(xiāo)是16個(gè)字節(jié),用來(lái)保存對(duì)象的頭信息。
-
一般內(nèi)存的使用,如果不夠8個(gè)字節(jié),都會(huì)被自動(dòng)填充為8個(gè)字節(jié)
public class Demo{ public int num = 1; }通過(guò)new Demo()創(chuàng)建一個(gè)對(duì)象的內(nèi)存占用如下:
- 整型成員變量num占用4個(gè)字節(jié);
- 對(duì)象本身占用16個(gè)字節(jié);
那么創(chuàng)建該對(duì)象總共需要20個(gè)字節(jié),但由于不是以8為單位,會(huì)自動(dòng)填充為24個(gè)字節(jié)
java中數(shù)組被限定為對(duì)象,他們一般都會(huì)因?yàn)橛涗涢L(zhǎng)度而需要額外的內(nèi)存,一個(gè)原始數(shù)組類(lèi)型的數(shù)據(jù)一般需要24字節(jié)的頭信息(16個(gè)字節(jié)對(duì)象開(kāi)銷(xiāo),4字節(jié)用于保存長(zhǎng)度以及4個(gè)填充字節(jié)),再加上保存值所需的內(nèi)存。