先看一个基本概念
bit 比特 是 二进位制信息单位,即0,1
然后看8种基本类型
整型
byte 1字节 8位元组,即8位bit, 可存储-2^8~2^7 (-128 ~ 127)
short 2字节 2*8 = 16 bit -2^16~2^15 (-32768 ~ 32767)
int 4字节 4*8 = 32 bit -2^32~2^31 (-2147483648 ~ 2147483647)
long 8字节 8*8 = 64 bit -2^64~2^63 (-18446744073709551616 ~ 18446744073709551615)
浮点型
float 4字节 4*8 = 32 bit -2^32~2^31 (-2147483648 ~ 2147483647)
double 8字节 8*8 = 64 bit -2^64~2^63 (-18446744073709551616 ~ 18446744073709551615)
字符型
char 2字节 2*8 = 16 bit 英文字符所占字节 2,中文字符根据编码不同
布尔型
boolean 1字节 8bit true|false
备注:
GBK编码,一个汉字占两个字节。
UTF-16编码,通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。
UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。
Java不受系统32或者64位影响,所有类型占字节数都固定,不同于c,会有int32,int64。