自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制。
int基本类型
首先,Java的整数是32位有符号(即包括正值和负值)整数,由int关键字表示:
int someNumber = 10;
当然,像所有基本类型一样,整型有自己的限制。由于它只有32位,所以其取值范围为:
Integer.MAX_VALUE // Prints 2,147,483,647
Integer.MIN_VALUE // Prints -2,147,483,648
自然地,对于简单的计算而言,int是最常用的整数类型。如果你需要更大的数字范围,请参照下面的long。
double基本类型
与int不同,Java的双精度类型是64位浮点数,由double关键字表示:
double someNumber = 110.55;
需要提醒的是,浮点数实际上就是实数。换句话说,双精度浮点数中包含小数点。 由于双精度类型是64位,它能表示的数字要比整型多很多。所以其双精度类型的范围为:
Double.MAX_VALUE // Prints 1.7976931348623157E308
Double.MIN_VALUE // Prints 4.9E-324
需要注意的是,负的指数表示的是非常小的数字,而不是非常大的负数。所以这里的取值范围跟整数不是完全一样。一般而言,double是在Java中使用浮点数的默认选择。另一个选择是float。
char基本类型
Java中所有的字符都用单引号表示,Java的字符类型表示16位字符,由char关键字表示:
char someCharacter = 'f';
char类型是Java中唯一的无符号类型。为了让其范围有意义,我们可以将结果转换成整数为:
(int) Character.MAX_VALUE // Prints 65535
(int) Character.MIN_VALUE // Prints 0
byte基本类型
8个比特组成一个字节,字节是Java支持的基本类型之一。字节由byte关键字表示:
byte someByte = 20;
同样,可以利用下面的代码片段来确认byte类型的取值范围:
Byte.MAX_VALUE // Prints 127
Byte.MIN_VALUE // Prints -128
short基本类型
short是另一种整数类型,但它占用的空间要比int类型更小。实际上,它的占用空间正好是int类型的一半,为16位,由short关键字表示:
short someNumber = 11;
short类型的取值范围也只有整数的一半,可以用下述代码确认:
Short.MAX_VALUE // Prints 32767
Short.MIN_VALUE // Prints -32768
在实际应用中,short只有65546个可能的值。在内存空间和磁盘空间受限的情况下,会使用byte和short。但在其他情况下,在定义整数时默认使用int更为安全。
long基本类型
与short相反的是long基本类型,即长整数。该类型用来表示比int类型还要大的非常大的数。long类型是64位有符号整数,其取值范围超过了10的18次方。通常,长整数用long关键字表示:
long someBigNumber = 1013401346173L;
下面的代码可以查看64位值究竟有多大:
Long.MAX_VALUE // Prints 9,223,372,036,854,775,807
Long.MIN_VALUE // Prints -9,223,372,036,854,775,808
float基本类型
虽然通常使用64位浮点数类型double,但Java还支持另一种浮点数类型,叫做float。但与int类似,Java默认情况下使用double表示浮点数。但还可以用float来表示32位浮点数类型:
float someNumber = 11.4f;
float类型的范围如下:
Float.MAX_VALUE // Prints 3.4028235E38
Float.MIN_VALUE // Prints 1.4E-45
可见,32位浮点数的范围和精度都要小得多。如果不需要double的精度,同时节省一半的空间,那么可以选择float类型。
boolean基本类型
最后是boolean类型。定义布尔类型可以使用boolean关键字:
boolean isBool = true;
布尔类型有些特殊,不像其他基本类型那样,它表示的是true或false,即真和假。 在Java中做任何事情都会涉及到布尔类型,许多代码逻辑中的比较操作的结果都是布尔类型。