疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

整型-基本数据类型(1)—[疯狂java讲义]


 

基本数据类型
        Java的基本数据类型可以分为两大类:boolean类型和数值类型。而数值类型又可以分为整型和浮点型,整型里的字符型往往也被单独对待。因此常常也把Java里的基本数据类型分为四类,如图3.8所示:
       Java语言里就包含了这8种基本数据类型,值得指出的是:字符串不是基本数据类型,字符串类型是一个类,也就是一个引用数据类型。
整型
       通常所说的整型,实际指的是如下四种类型:
       1、byte:一个byte型整数在内存里占8位,表数范围是:-128 (-27)到127 (27-1)。
       2、short:一个short型整数在内存里占16位,表数范围是:-32768 (-215)到32767 (215-1)。
       3、int:一个int型整数在内存里占32位,表数范围是:-2147483648 (-231)到2147483647(231-1)。
       4、long:一个long型整数在内存里占64位,表数范围是:-9223372036854775808 (-263)到9223372036854775807 (263-1)。
       int是最常用的整数类型,因此通常情况下,一个Java整数常量默认就是int类型。除此之外,有如下两种情形必须指出:
       1、如果直接将一个较小的整数常量(在byte或short类型的表数范围内)赋给一个byte或short变量,系统会自动把这个整数常量当成byte或者short类型来处理。
       2、如果使用一个巨大的整数常量(超出了int类型的表数范围)时,Java不会自动把这个整数常量当成long类型来处理。如果希望系统把一个整数常量当成long类型来处理,应在这个整数常量后增加I或者L作为后缀。通常推荐使用L,因为l很容易跟1搞混。
       下面代码片段验证了上面的结论。
       程序清单:codescodes33-4Testlntegraljava
       //下面代码是正确的,系统会自动把65当初byte类型处理
       byte a=56
       /*
       下面代码是错的,系统不会吧9223372036854775807当成long类型处理,
       所以超出int的表数范围,从而引起错误*/
       long bigValue=9999999999999;
       //下面代码是正确的,在巨大的整数常量后使用L后缀,强制使用long类型
       long bigValue2=9223372036854775807L;
       注意:可以把一个较小的整数常量(在int类型的表数范围以内)直接赋给一个long类型的变量,这并不因为Java会才已这个较小的整数常量当成long类型来处理。Java依然把这个整数常量当成int类型来处理,只是这个int类型的值会自动类型转换到long类型。
        Java中整数常量有3种表示方式:10进制、8进制和16进制,其中8进制的整数常量以0开头,16进制的整数以Ox或者ox开头,其中10~15分别以a~f(此处的a~f不区分大小写)来表示。
        下面代码片段分别使用8进制和16进制的数。
        程序清单:codescodes33-4Testlntegral.java
        //以0开头的整数常量是8进制的整数
        int octalValue=013;
        //以0x或0X开头的整数常量是16进制的整数
        int hexValue1=0x13;
        int hexValue2=0XaF;(未完.摘自[疯狂java讲义].李刚)