基本类型
所谓的占用字节数,就是申请内存的时候所占的空间大小
类型 | 字节数 | 最小值 | 最大值 |
---|---|---|---|
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 |