IT兄弟连 Java语法教程 数据类型2

整型

Java定义了4种整数类型:byte、short、int和long。所有这些类型都是有符号的、正或负的整数。Java不支持无符号的、只是正值的整数。许多其它计算机语言同时支持有符号和无符号整数。然而,Java的设计者觉得无符号整数不是必需的。特别是,它们觉得“无符号”的概念通常用于指定“高阶位”(high-order bit)的行为,高阶位用于定义整形值的符号。在本书后面的章节中将会看到,Java通过添加特殊的“无符号右移”运算符,以稍微不同的方式管理高阶位的含义。因此,Java消除了对无符号整数类型的需要。

不应该将整数类型的宽度看成整数所消耗的存储量,而应当理解成定义这种类型的变量和表达式的行为。Java运行时环境可以自由使用它们希望的、任何大小的空间。只要类型的行为符合声明它们时的约定即可。这些整数类型的宽度和范围相差很大,如表所示:

表 整数类型的宽度和范围

ab301a75f8344c3c8dd729ad60af1fd4.png

接下来看一看每种整数类型。

●  byte

最小的整数类型是byte。它是有符号的8位整数类型。范围为−128~127。当操作来自网络或文件的数据流时,byte类型的变量特别有用。当操纵与Java的其它内置类型不直接兼容的二进制数据时,byte类型的变量也很有用。

byte变量是通过关键字byte声明的。例如,下面声明了两个byte变量b和c:

byte b;

byte c;

●  short

short是有符号的16位整数类型,它的范围为−32768~32767。它可能是最不常用的变量类型。short类型变量通过关键字byte声明的。例如,下面声明了两个short变量s和t:

short s;

short t;

●  int

最常用的整数类型就是int类型。它是有符号的32位整数类型,范围为-2147473648~2147483647。除了其它用途外,int类型变量通常用于控制循环和索引数组。对于那些不需要更大范围的int类型数值的情况,您可能会认为使用范围更小的byte和short类型效率更高些,然而事实并非如此。原因是如果在表达式中使用byte和short值,当对表达式求值时会被提升为int类型。所以,当需要使用整数类型时,int通常时最好的选择。int类型变量通过关键字int声明的。例如,下面声明了两个int变量i和n:

int i;

int n;

●  long

long是有符号的64位整数类型,对于那些int类型不足以容纳的整数,long类型是最有用的。long类型的范围相当大,这使得当需要很大的整数时它非常有用。long类型变量通过关键字long声明的。例如,下面声明了两个long变量l和g:

long l;

long g;

浮点型

浮点数也称为实数(real number),当计算需要小数精度的表达式时使用。例如,求平方根这类计算以及正弦和余弦这类超越数,保存结果就需要使用浮点类型。Java实现了IEEE-754标准集的浮点类型和运算符。Java中有两种浮点类型:float和double,它们分别表示单精度浮点数和双精度浮点数。它们的宽度和精度如表3.3所示:

表浮点类型的宽度和范围

ad5a5edfb3b74019860d27d4bf9a34b4.png

下面详细解释每种浮点类型

●  float

float类型表示使用32位存储的单精度(single-precision)数值。在某些处理器上,单精度运算速度更快,并且占用的空间是双精度的一半,但是当数值非常小时会变得不精确。如果需要小数部分,并且精度要求不是很高时,float类型的变量是很有用的。例如表示商品单价时可以使用float类型。float类型变量通过关键字float声明的。例如,下面声明了两个float变量f和o:

float f;

float o;

●  double

双精度使用double关键字表示,并使用64位储存数值,在针对高速数学运算进行了优化的某些现代处理器上,实际上双精度数值的运算速度更快。所有超越数学函数,如sin()、cos()和sqtr(),都返回双精度值。如果需要在很多次迭代运算中保持精度,或是操作非常大的数值,double类型是最佳选择。double类型变量通过关键字double声明的。例如,下面声明了两个double变量u和l:

double u;

double l;

猜你喜欢

转载自www.cnblogs.com/itxdl/p/11100844.html
今日推荐