【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

参考文章

  • java中 int、char、long各占多少字节数
  • Java不同编码方式,中英文字符所占字节数
  • int、char、long各占多少字节数

你可能感兴趣的:(Java)