Java语言提供了八种基本类型:六种数字类型(四个整数型,两个浮点型),一种字符类型和一种布尔型。其含义、占用位数和取值范围如表1。

基本类型

含义

占用位数

可取值范围

默认值

byte

字节型

8bit  

[-128,127]

0

short

短整型数据

16bit

[-65526,65525]

0

int

整型数据

32bit

[-2147483648,2147483647]

0

long

长整型数据

64bit

[-9223372036854775808,9223372036854775807]

0

float

单精度浮点数

32bit

 

0.0f

double

双精度浮点数

64bit

 

0.0d

char

16 位 Unicode 字符

16bit

[0,65525]

 0

boolean

布尔型

未明确

true;false

false

表1 java中的基本类型

 

注意点:

  (1)4种整型数据基本类型(byte、short、int、long)均为有符号、二进制补码表示的整数,因此假设其位数为nbit,则表示范围为[-2^n,2^n-1];

  (2)char型表示的整数范围是怎么得到的?-->因为16位Unicode字符的编码范围是0000-FFFF(16进制),所以char可表示的整数范围就是[0,FFFF],即[0,2^16-1]。但是,需要强调一点:直接打印一个char型变量时,打印结果是该char型变量代表的Unicode字符。

  (3)浮点数不能用来精确地表示某个具体的值(比如价格)

  (4)当我们在一个java类中定义了一个基本类型的数据成员且没有初始化时,java编译器将按照表1中各个基本类型的默认值为它进行初始化;但是,如果我们在方法中定义了一个未初始化的基本类型的局部变量i,在使用该变量i时java编译器会报错:Variable i might not have been initialized.

基本类型的更多说明,可参考:http://www.runoob.com/java/java-basic-datatypes.html

关于boolean占用位数,可参考:https://www.jianshu.com/p/2f663dc820d0