2017年計(jì)算機(jī)二級(jí)JAVA考點(diǎn)解析:數(shù)據(jù)類型

字號(hào):


    2.1數(shù)據(jù)類型
    數(shù)據(jù)類型指明了變量或表達(dá)式的狀態(tài)和行為。Java的數(shù)據(jù)類型如下所示:
    Java不支持C、C++中的指針類型、結(jié)構(gòu)體類型和共用體類型。
    本章我們主要介紹簡(jiǎn)單類型。
    2.2常量與變量
    一、常量
    Java中的常量值是用文字串表示的,它區(qū)分為不同的類型,如整型常量123,實(shí)型常量1.23,字符常量'a',布爾常量true、false以及字符串常量"Thisisaconstantstring."。
    與C、C++不同,Java中不能通過(guò)#define命令把一個(gè)標(biāo)識(shí)符定義為常量,而是用關(guān)鍵字final來(lái)實(shí)現(xiàn),如
    finaldoublePI=3.14159(有關(guān)final的用法見[6.2.3])。
    二、變量
    變量是Java程序中的基本存儲(chǔ)單元,它的定義包括變量名、變量類型和作用域幾個(gè)部分。
    ①變量名是一個(gè)合法的標(biāo)識(shí)符,它是字母、數(shù)字、下劃線或美元符"$"的序列,Java對(duì)變量名區(qū)分大小寫,變量名不能以數(shù)字開頭,而且不能為保留字。合法的變量名如:myName、value-1、dollar$等。非法的變量名如:2mail、room#、class(保留字)等,變量名應(yīng)具有一定的含義,以增加程序的可讀性。
    ②變量類型可以為上面所說(shuō)的任意一種數(shù)據(jù)類型。
    ③變量的作用域指明可訪問(wèn)該變量的一段代碼。聲明一個(gè)變量的同時(shí)也就指明了變量的作用域。按作用域來(lái)分,變量可以有下面幾種:局部變量、類變量、方法參數(shù)、例外處理參數(shù)。
    局部變量在方法或方法的一塊碼中聲明,它的作用域?yàn)樗诘拇a塊(整個(gè)方法或方法中的某塊代碼)。
    類變量在類中聲明,而不是在類的某個(gè)方法中聲明,它的作用域是整個(gè)類。
    方法參數(shù)傳遞給方法,它的作用域就是這個(gè)方法。
    例外處理參數(shù)傳遞給例外處理代碼,它的作用域就是例外處理部分。
    在一個(gè)確定的域中,變量名應(yīng)該是的。通常,一個(gè)域用大括號(hào){}來(lái)劃定。
    ④變量的聲明格式為:
    typeidentifier[=value][,identifier[=value]…];
    例如:inta,b,c;
    doubled1,d2=0.0;
    其中,多個(gè)變量間用逗號(hào)隔開,d2=0.0對(duì)實(shí)型變量d2賦初值0.0,只有局部變量和類變量是可以這樣賦初值的,而方法參數(shù)和例外處理參數(shù)的變量值是由調(diào)用者給出的。
    2.3整型數(shù)據(jù)
    一、整型常量:
    與C,C++相同,Java的整常數(shù)有三種形式:
    ①十進(jìn)制整數(shù),如123,-456,0
    ②八進(jìn)制整數(shù),以0開頭,如0123表示十進(jìn)制數(shù)83,-011表示十進(jìn)制數(shù)-9。
    ③十六進(jìn)制整數(shù),以0x或0X開頭,如0x123表示十進(jìn)制數(shù)291,-0X12表示十進(jìn)制數(shù)-18。
    整型常量在機(jī)器中占32位,具有int型的值,對(duì)于long型值,則要在數(shù)字后加L或l,如123L表示一個(gè)長(zhǎng)整數(shù),它在機(jī)器中占64位。
    二、整型變量:
    整型變量的類型有byte、short、int、long四種。下表列出各類型所在內(nèi)存的位數(shù)和其表示范圍。
    int類型是最常使用的一種整數(shù)類型。它所表示的數(shù)據(jù)范圍足夠大,而且適合于32位、64位處理器。但對(duì)于大型計(jì)算,常會(huì)遇到很大的整數(shù),超出int類型所表示的范圍,這時(shí)要使用long類型。
    由于不同的機(jī)器對(duì)于多字節(jié)數(shù)據(jù)的存儲(chǔ)方式不同,可能是從低字節(jié)向高字節(jié)存儲(chǔ),也可能是從高字節(jié)向低字節(jié)存儲(chǔ),這樣,在分析網(wǎng)絡(luò)協(xié)議或文件格式時(shí),為了解決不同機(jī)器上的字節(jié)存儲(chǔ)順序問(wèn)題,用byte類型來(lái)表示數(shù)據(jù)是合適的。而通常情況下,由于其表示的數(shù)據(jù)范圍很小,容易造成溢出,應(yīng)避免使用。
    short類型則很少使用,它限制數(shù)據(jù)的存儲(chǔ)為先高字節(jié),后低字節(jié),這樣在某些機(jī)器中會(huì)出錯(cuò)。
    三、整型變量的定義,如:
    byteb;//指定變量b為byte型
    shorts;//指定變量s為short型
    inti;//指定變量i為int型
    longl;//指定變量l為long型
    2.4浮點(diǎn)型(實(shí)型)數(shù)據(jù)
    一、實(shí)型常量
    與C,C++相同,Java的實(shí)常數(shù)有兩種表示形式:
    ①十進(jìn)制數(shù)形式,由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如0.123,.123,123.,123.0
    ②科學(xué)計(jì)數(shù)法形式。如:123e3或123E3,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。
    實(shí)常數(shù)在機(jī)器中占64位,具有double型的值。對(duì)于float型的值,則要在數(shù)字后加f或F,如12.3F,它在機(jī)器中占32位,且表示精度較低。
    二、實(shí)型變量
    實(shí)型變量的類型有float和double兩種,下表列出這兩種類型所占內(nèi)存的位數(shù)和其表示范圍。
    數(shù)據(jù)類型所占位數(shù)數(shù)的范圍
    float323.4e-038~3.4e+038
    double641.7e-308~1.7e+308
    雙精度類型double比單精度類型float具有更高的精度和更大的表示范圍,常常使用。
    三、實(shí)型變量定義,如
    floatf;//指定變量f為float型
    doubled;//指定變量d為double型
    [注]與C、C++不同,Java中沒(méi)有無(wú)符號(hào)型整數(shù),而且明確規(guī)定了整型和浮點(diǎn)型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù),這樣就保證了安全性、魯棒性和平臺(tái)無(wú)關(guān)性。
    2.5字符型數(shù)據(jù)
    一、字符常量
    字符常量是用單引號(hào)括起來(lái)的一個(gè)字符,如'a','A'。另外,與C、C++相同,Java也提供轉(zhuǎn)義字符,以反斜杠(\)開頭,將其后的字符轉(zhuǎn)變?yōu)榱硗獾暮x,下表列出了Java中的轉(zhuǎn)義字符。
    與C、C++不同,Java中的字符型數(shù)據(jù)是16位無(wú)符號(hào)型數(shù)據(jù),它表示Unicode集,而不僅僅是ASCII集,例如\u0061表示ISO拉丁碼的'a'。
    轉(zhuǎn)義字符描述
    \ddd1到3位8進(jìn)制數(shù)據(jù)所表示的字符(ddd)
    \uxxxx1到4位16進(jìn)制數(shù)所表示的字符(xxxx)
    \'單引號(hào)字符
    \\反斜杠字符
    \r回車
    \n換行
    \f走紙換頁(yè)
    \t橫向跳格
    \b退格
    二、字符型變量
    字符型變量的類型為char,它在機(jī)器中占16位,其范圍為0~65535。字符型變量的定義如:
    charc='a';//指定變量c為char型,且賦初值為'a'
    與C、C++不同,Java中的字符型數(shù)據(jù)不能用作整數(shù),因?yàn)镴ava不提供無(wú)符號(hào)整數(shù)類型。但是同樣可以把它當(dāng)作整數(shù)數(shù)據(jù)來(lái)操作。
    例如:
    intthree=3;
    charone='1';
    charfour=(char)(three+one);//four='4'
    上例中,在計(jì)算加法時(shí),字符型變量one被轉(zhuǎn)化為整數(shù),進(jìn)行相加,最后把結(jié)果又轉(zhuǎn)化為字符型。
    三、字符串常量
    與C、C++相同,Java的字符串常量是用雙引號(hào)("")括起來(lái)的一串字符,如"Thisisastring.\n"。但不同的是,Java中的字符串常量是作為String類的一個(gè)對(duì)象來(lái)處理的,而不是一個(gè)數(shù)據(jù)。有關(guān)類String,我們將在
    第七章講述。
    2.6布爾型數(shù)據(jù)
    布爾型數(shù)據(jù)只有兩個(gè)值,true和false,且它們不對(duì)應(yīng)于任何整數(shù)值。在流控制中常用到它。
    布爾型變量的定義如:
    booleanb=true;//定義b為布爾型變量,且初值為true
    2.7舉例
    例2.1.下例中用到了前面提到的數(shù)據(jù)類型,并通過(guò)屏幕顯示它們的值。
    publicclassSimpleTypes{
    publicstaticvoidmain(Stringargs[]){
    byteb=0x55;
    shorts=0x55ff;
    inti=1000000;
    longl=0xfffL;
    charc='c';
    floatf=0.23F;
    doubled=0.7E-3;
    booleanbool=true;
    System.out.println("b="+b);
    System.out.println("s="+s);
    System.out.println("i="+i);
    System.out.println("c="+c);
    System.out.println("f="+f);
    System.out.println("d="+d);
    System.out.println("bool="+bool);
    }
    }
    編譯并運(yùn)行該程序,輸出結(jié)果為:
    C:\>javaSimpleTypes
    b=85
    s=22015
    i=1000000
    l=4095
    c=c
    f=0.23
    d=0.0007
    bool=true