進(jìn)一步研究字面量

字號(hào):

3.7.1 整數(shù)字面量
    整數(shù)可能是在典型的程序中最常用的類型。任何一個(gè)數(shù)字的值就是一個(gè)整數(shù)字面量。例如1,2,3和42。這些都是十進(jìn)制的值,這意味著對他們的描述基于數(shù)字10。還有另外2 種進(jìn)制被整數(shù)字面量使用,八進(jìn)制(octal,基數(shù)是8)和十六進(jìn)制(hexadecimal,基數(shù)是16)。在Java 中對八進(jìn)制的值通過在它的前面加一個(gè)前導(dǎo)0來表示。正常的十進(jìn)制的數(shù)字不用前導(dǎo)零。這樣,看起來有效的值09將從編譯器產(chǎn)生一個(gè)錯(cuò)誤,因?yàn)?超出了八進(jìn)制的范圍0~7。程序員對數(shù)字更常用的是十六進(jìn)制,它清楚地與8的大小相匹配,如8,16,32,和64位。
    通過前導(dǎo)的0x或0X表示一個(gè)十六進(jìn)制的字面量。十六進(jìn)制數(shù)的范圍是0~15,這樣用A~ F(或a~f)來替代10~15。
    整數(shù)字面量產(chǎn)生int 值,在Java 中它是32位的整數(shù)值。既然Java 對類型要求嚴(yán)格,你可能會(huì)納悶,將一個(gè)整數(shù)字面量賦給Java 的其他整數(shù)類型如byte 或long 而沒有產(chǎn)生類型不匹配的錯(cuò)誤,怎么可能呢。慶幸的是,這個(gè)問題很好解決。當(dāng)一個(gè)字面量的值被賦給一個(gè)byte 或short型的變量時(shí),如果字面量的值沒有超過對應(yīng)類型的范圍時(shí)不會(huì)產(chǎn)生錯(cuò)誤,所以,一個(gè)在第2章中曾簡要地提及字面量,現(xiàn)在已經(jīng)講述了內(nèi)置的類型,讓我們進(jìn)一步研究它們。
    3.7.1 整數(shù)字面量
    整數(shù)可能是在典型的程序中最常用的類型。任何一個(gè)數(shù)字的值就是一個(gè)整數(shù)字面量。例如1,2,3和42。這些都是十進(jìn)制的值,這意味著對他們的描述基于數(shù)字10。還有另外2 種進(jìn)制被整數(shù)字面量使用,八進(jìn)制(octal,基數(shù)是8)和十六進(jìn)制(hexadecimal,基數(shù)是16)。在Java 中對八進(jìn)制的值通過在它的前面加一個(gè)前導(dǎo)0來表示。正常的十進(jìn)制的數(shù)字不用前導(dǎo)零。這樣,看起來有效的值09將從編譯器產(chǎn)生一個(gè)錯(cuò)誤,因?yàn)?超出了八進(jìn)制的范圍0~7。程序員對數(shù)字更常用的是十六進(jìn)制,它清楚地與8的大小相匹配,如8,16,32,和64位。
    通過前導(dǎo)的0x或0X表示一個(gè)十六進(jìn)制的字面量。十六進(jìn)制數(shù)的范圍是0~15,這樣用A~ F(或a~f)來替代10~15。
    整數(shù)字面量產(chǎn)生int 值,在Java 中它是32位的整數(shù)值。既然Java 對類型要求嚴(yán)格,你可能會(huì)納悶,將一個(gè)整數(shù)字面量賦給Java 的其他整數(shù)類型如byte 或long 而沒有產(chǎn)生類型不匹配的錯(cuò)誤,怎么可能呢。慶幸的是,這個(gè)問題很好解決。當(dāng)一個(gè)字面量的值被賦給一個(gè)byte 或short型的變量時(shí),如果字面量的值沒有超過對應(yīng)類型的范圍時(shí)不會(huì)產(chǎn)生錯(cuò)誤,所以,一個(gè)轉(zhuǎn)義序列說明
    續(xù)表
    \f 換頁\t 水平制表符\b 退格
    3.7.5 字符串字面量
    Java 中的字符串字面量和其他大多數(shù)語言一樣——將一系列字符用雙引號(hào)括起來。字符串的例子如:
    "Hello World"
    "two\nlines"
    "\"This is in quotes\""
    為字符串定義的字符轉(zhuǎn)義序列和八進(jìn)制/十六進(jìn)制記法在字符串內(nèi)的工作方法一樣。關(guān)于Java 字符串應(yīng)注意的一件重要的事情是它們必須在同一行開始和結(jié)束。不像其他語言有換行連接轉(zhuǎn)義序列。
    注意:你可能知道,在大多數(shù)其他語言中,包括C/C++ ,字符串作為字符的數(shù)組被實(shí)現(xiàn)。然而,在Java 中并非如此。在Java中,字符串實(shí)際上是對象類型。在這本書的后面你將看到,因?yàn)镴ava 對字符串是作為對象實(shí)現(xiàn)的,因此,它有廣泛的字符串處理能力,而且功能既強(qiáng)又好用。