Java基本数据类型

Java是一种强类型语言,必须为每一个变量声明一种类型。Java共包含8中基本类型,其中4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。

整型

    整型用于表示没有小数部分的数值,但是允许是负的。Java包含4种整型:

  • int:4字节
  • short:2字节
  • long:8字节
  • byte:1字节

长整型数值有一个后缀L(如,999999999L)。十六进制有一个前缀0x(如,0xabc)。八进制有一个前缀0,例如011表示八进制中的9。

从Java 7开始,加上0b可以表示二进制数,例如0b101就是5。另外可以为数字字面量添加下划线(_)。如1000_000表示一百万。加下划线只是为了易读。

浮点数

    浮点数表示有小数部分的数值。在Java中有两种浮点类型:

  • float:4字节
  • double:8字节

double表示的数值精度为float的两倍。在实际开发中,大部分情况下使用double而不使用float。

float类型有一个的数值后缀F或f或D(如,1.72F)。在没有后缀F的浮点数值(如,1.72)默认为double类型。

三个表示溢出和出错情况的三个特殊的浮点数:

  • 正无穷大 Double.POSITIVE_INFINITY
  • 负无穷大 Double.NEGATIVE_INFINITY
  • NaN(不是一个数),判断“非数值”,可以使用Double.isNaN方法

char类型

    char类型用于表示字符常量。例如:'A'是编码为65所对应的字符常量。而"A"表示一个包含字符A的字符串。Unicode编码单元可以表示为十六进制,其范围从\u0000到\uffff。除了采用转义序列符\u表示Unicode代码单元的编码之外,还有一些表示特殊字符的转义序列符,(如,\b退格,\n换行等)。

boolean类型

    boolean类型有两个值:false和true。用来判断逻辑条件。整型值和boolean值之间不能进行相互转换。

 

数值类型之间的转换

 

    在程序运行时,经常要将一种数值类型转换为另一种数值类型。

 

图中是实心箭头表示无信息丢失的转换;虚箭头表示可能有精度损失的转换。当两个不同类型的数据进行计算时,先要将两个操作数转换为同一种类型,然后再进行计算。

 

  • 如果两个操作数中有一个double类型,另一个操作数就会转换为double类型。
  • 否则,如果其中一个操作数为float类型,另一个操作数就会转换为float类型。
  • 否则,如果其中一个操作数是long类型,另一个操作数就会转换为long类型。
  • 否则,两个操作数都将被转换为int类型。

强制类型转换

    在必要的时候,int类型会自动转换为double类型。但另一方面,有时也需要将double转换为int。Java允许这种数值之间的类型转换。这种转换有可能丢失一些信息,在这种情况下,需要通过强制类型转换实现这种操作。

double x = 9.8;
int n = (int)x;

这样,变量n的值为9。强制类型转换通过截取小数部分将浮点值转换为整型。

如果对浮点数进行舍入运算,以便得到最接近的整数,可以使用Math.round方法:

double x = 9.8;
int n = (int)Math.round(x);

这样,变量n的值为10。当调用round时,仍然需要调用强制类型转换。因为round方法返回的结果为long类型。

 

 

posted @ 2014-07-24 20:47  萧萧弈寒  阅读(370)  评论(0编辑  收藏  举报