本文旨在为新手讲解Java基本数据类型的用法及注意事项,对于久经沙场的前辈请忽略此文。


Java同C、C#、C++一样是一种强类型的语言,即每个变量在使用之前,都必须为变量声明一个数据类型;在Java中共有8中基本数据类型,在本文稍后将一一作出讲解。


说明:在Java中,当需要表示超出基本数据类型所能够表示的精度的数值的时候,可以使用Java中已经封装好的算术包;但需要注意的是,该算术包并非是一个数据类型,而是一个java对象。


本文目录:

  • 整型[byte | short | int | long]

  • 浮点型[float | double]

  • 字符型[char]

  • 布尔型[boolean]


  1. 整型

      整型用于表示没有小数部分的数值,即由正整数、负整数和0组成;在Java中、有四种整型。

      1) byte类型       1字节    -128~127

        2) short类型      2字节    -32768~32767

        3) int类型          4字节    -2147483648~2147483647

        4) long类型       8字节    -9223372036854775808~9223372036854775807

        由此可知,在java中数据类型的长度固定,因此可以保证在各个平台之上运行结果一致[跨平台]。


        通常,int类型最常用;当表示的数值特别大的时候,就需要使用long类型;byte和short类型,在

        特定场合(对数值结果明确的可预知)的时候使用(如:需要限制占用存储空间的大数组);当使

        用long类型的时候,需要在数值后加L来表示该数值为long类型。


  2. 浮点型

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

        1) float类型          4字节     有效位数为6-7位

        2) double类型      8字节     有效位数为15位

        由以上可以看出,double数值精度为float的两倍,因此double也称为双精度数值;通常、绝大部

        分程序都应使用double类型,因为、很多情况下float没法满足需求[例如:表示员工的年薪,此时

        可能高层的薪水是float所无法表示的]


        注意:在Java中,表示float数据类型需要在数值后加f以表示该数值为单精度数值;否则Java默认

                为双精度数值。在Java中所有的运算都遵循IEEE 754规范。


        表示溢出和出错的三个特殊数值:Double.POSITIVE_INFINIFY(正无穷)、NaN(不是数一个数

        字)、Double.NEGATIVE_INFINIFY(负无穷) [正整数除以0的时候,结果就是无穷大,而计算

        0/0或者负数的平方根的时候,结果就是NaN]


        在程序中,当需要判断一个数值是否是NaN的时候,不能使用if(x == Double.NaN)来判断,因为

        在Java中,所有的非数值类型(NaN)都被认为是不相同的;必须使用if(Double.isNaN(x))来判断


        注意:浮点类型不能被用于不允许出现舍入误差的运算中(如银行数值的计算),必须使用

                BigDecimal类来进行计算。


  3. 字符型

        char类型表示单个字符;通常用于表示常量;在Java中,char类型使用UTF-16编码描述一个编码

        单元。通常、强烈不建议在程序中使用char类型,除非需要对UTF-16编码进行操作。


  4. 布尔型

        Boolean类型只有两个值(true 和 false),用来判定逻辑条件。


        注意:整型值和布尔值之间不能进行转换。即在Java程序中不可能出现类似if(2){}、while(1){}这样

                的语句,这样的语句在编译的时候就会报错(报错具体内容为:不兼容的数据类型)