1. 程式人生 > >【Java】int、long等基本型別佔用位元組數

【Java】int、long等基本型別佔用位元組數

基本型別

所謂的佔用位元組數,就是申請記憶體的時候所佔的空間大小

型別 位元組數 最小值 最大值
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

參考文章