JAVA中不同类型的取值范围

先看一个基本概念

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。