【Java】int、long等基本型別佔用位元組數
阿新 • • 發佈:2019-02-14
基本型別
所謂的佔用位元組數,就是申請記憶體的時候所佔的空間大小
型別 | 位元組數 | 最小值 | 最大值 |
---|---|---|---|
boolean | 未指定,至少1位元組,僅定義為取字面值true或false | - | - |
byte | 1 | -128(-2^7) | 127(2^7-1) |
short | 2 | -32768(-2^15) | 32767(2^15 - 1) |
char | 2 | \u0000(即0) | \uffff(即65,535) |
int | 4 | -2,147,483,648(-2^31) | 2,147,483,647(2^31 - 1) |
long | 8 | -9,223,372,036,854,775,808(-2^63) | 9,223,372,036,854,775,807(2^63 -1) |
float | 4(指數8位,尾數23位,指數偏移量127) | 3.4028235E38 | 1.4E - 45 |
double | 8(指數11位,尾數52位,指數偏移量1023) | 1.7976931348623157E308 | 4.9E - 324 |
中英文編碼位元組
對於中文,不同的編碼佔位元組數是不同的,UTF-8編碼下一個漢字所佔位元組也是不確定的,可能是2-4個位元組
char是2個位元組,char裡可以存一個漢字。String裡的漢字,按照編碼格式的不同,分為2-4個位元組的佔用,UTF-8佔用3個位元組,特別的佔用4個位元組。GBK裡漢字確實是佔用2個位元組。UTF-16裡漢字一般佔2個位元組,特殊的是4個位元組
編碼 | 英文位元組數 | 中文位元組數 |
---|---|---|
UTF-8 | 1 | 3 |
UTF-16 | 4 | 4 |
UTF-16BE | 2 | 2 |
UTF-16LE | 2 | 2 |
UTF-32 | 4 | 4 |
UTF-32BE | 4 | 4 |
UTF-32LE | 4 | 4 |
UNICODE | 4 | 4 |
GBK | 1 | 2 |
GB2312 | 1 | 2 |
GB18030 | 1 | 2 |
ISO8859-1 | 1 | 1 |
BIG5 | 1 | 2 |
ASCII | 1 | 1 |