以下为译文:
int someNumber = 10;
当然,像所有基本类型一样,整型有自己的限制。由于它只有32位,所以其取值范围为-2147483648到2147483647。这数字很大嘛!当然,我们可以在DrJava的交互面板中用下述技巧来确认:
Integer.MAX_VALUE // Prints 2,147,483,647
Integer.MIN_VALUE // Prints -2,147,483,648
自然地,对于简单的计算而言,int是最常用的整数类型。如果你需要更大的数字范围,请参照下面的long。
double someNumber = 110.55;
需要提醒的是,浮点数实际上就是实数。换句话说,双精度浮点数中包含小数点。
Double.MAX_VALUE // Prints 1.7976931348623157E308
Double.MIN_VALUE // Prints 4.9E-324
需要注意的是,负的指数表示的是非常小的数字,而不是非常大的负数。所以这里的取值范围跟整数不是完全一样。
char someCharacter = 'f';
Java中所有的字符都用单引号表示。同时,双引号用来表示字符串。我们稍后会讨论字符串。
Character.MAX_VALUE // Prints '???'
Character.MIN_VALUE // Prints ''
为了让这个范围有意义,我们可以将结果转换成整数(稍后会更多地介绍):
(int) Character.MAX_VALUE // Prints 65535
(int) Character.MIN_VALUE // Prints 0
可见,char类型是Java中唯一的无符号类型。换句话说,字符的取值范围为0到65535,每个值映射到特定的字符。如果需要创建该范围之外的字符,可以将一对字符组合起来。参见“在Java中反转字符串”(https://therenegadecoder.com/code/reverse-a-string-in-java/)这篇文章中的例子。
byte someByte = 20;
同样,可以利用下面的代码片段来确认byte类型的取值范围:
Byte.MAX_VALUE // Prints 127
Byte.MIN_VALUE // Prints -128
根据我的经验,byte类型在读取和处理原始数据时非常有用。但是一般而言,我们不会使用它,因为取值范围太小了。
short someNumber = 11;
short类型的取值范围也只有整数的一半,我们可以用下述代码确认:
Short.MAX_VALUE // Prints 32767
Short.MIN_VALUE // Prints -32768
在实际应用中,short只有65546个可能的值。在内存空间和磁盘空间受限的情况下,我们会使用byte和short。但在其他情况下,在定义整数时默认使用int更为安全。
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
也许,long可以用来计算光在一定时间内走过的距离。光在一秒内大约传播30万千米。如果编写一个程序来跟踪光走过的距离,那么7秒后int类型就超出范围类,而long类型能够计算大约975年。不相信吗?可以看看这个gist(https://gist.github.com/jrg94/820d3f0f482dd19f0170964346381df0)中的计算。
float someNumber = 11.4f;
float类型的范围如下:
Float.MAX_VALUE // Prints 3.4028235E38
Float.MIN_VALUE // Prints 1.4E-45
可见,32位浮点数的范围和精度都要小得多。如果不需要double的精度,同时节省一半的空间,那么可以选择float类型。
boolean isBool = true;
布尔类型有些特殊,不像其他基本类型那样,它们表示的不是数字值。实际上,之前使用的MAX_VALUE和MIN_VALUE技巧在这里不能使用。相反,它表示的是true或false,即真和假。
转载请注明:XAMPP中文组官网 » XAMPP相关:一文详解 java的八大基本类型