Java中的字面量

    在計算機科學中,字面量(literal)是用於表達源代碼中一個固定值的表示法(natation)。幾乎全部計算機編程語言都具備對基本值的字面量表示,諸如:整數、浮點數以及字符串;而有不少也對布爾類型和字符類型的值也支持字面量表示;還有一些甚至對枚舉類型的元素以及像數組、記錄和對象等符合類型的值也支持字面量表示法。java

Java中通俗的說:int i = 1;把整數1賦值給int型變量i,整數1就是Java字面量,
一樣,String s = "abc";中的abc也是字面量。程序員

整數字面量

     整數多是在典型的程序中最經常使用的類型。任何一個數字的值就是一個整數字面量。例如12342。這些都是十進制的值,這意味着對他們的描述基於數字10。還有另外2 種進制被整數字面量使用,八進制(octal,基數是8)和十六進制(hexadecimal,基數是16)。在Java 中對八進制的值經過在它的前面加一個前導0來表示。正常的十進制的數字不用前導零。這樣,看起來有效的值09將從編譯器產生一個錯誤,由於9超出了八進制的範圍07。程序員對數字更經常使用的是十六進制,它清楚地與8的大小相匹配,如81632,和64位。經過前導的0x0X表示一個十六進制的字面量。十六進制數的範圍是015,這樣用AF(或af)來替代1015編程

 

    整數字面量產生int 值,在Java 中它是32位的整數值。既然Java 對類型要求嚴格,你可能會納悶,將一個整數字面量賦給Java 的其餘整數類型如byte long 而沒有產生類型不匹配的錯誤,怎麼可能呢。慶幸的是,這個問題很好解決。當一個字面量的值被賦給一個byte short型的變量時,若是字面量的值沒有超過對應類型的範圍時不會產生錯誤。數組

字符串字面量

Java 中的字符串字面量和其餘大多數語言同樣——將一系列字符用雙引號括起來。字符串的例子如:編程語言

 

       "Hello World" spa

       "two\nlines" .net

       "\"This is in quotes\"" 3d

 

     爲字符串定義的字符轉義序列和八進制/十六進制記法在字符串內的工做方法同樣。關於Java 字符串應注意的一件重要的事情是它們必須在同一行開始和結束。不像其餘語言有換行鏈接轉義序列。對象

 

注意:你可能知道,在大多數其餘語言中,包括C/C++ ,字符串做爲字符的數組被實現。然而,在Java 中並不是如此。在Java中,字符串其實是對象類型。由於Java 對字符串是做爲對象實現的,所以,它有普遍的字符串處理能力,並且功能既強又好用。ci

 

其餘字面量

上一張Java中各個數據類型具體的正確字面量的表:

 

 

數據類型

直接量描述

舉例

int

整數直接量(可用2、10、8、十六進制表示)

12

-12

12

0b12

12

0x12

long

在整數直接量(也就是int型)後面,加上字母l或L

12l

-12L

float

在數字(包括整數和小數)後面,加上字母f或F

3f

-3.14F

3.14e5F

-3.14E-5f

.5f

double

1.浮點數直接量

2.科學計數法直接量

3.在數字(包括整數和小數)後面加上字母d或D

3d

3.14E-05

-0.5

boolean

布爾直接量true、false

TRUE

FALSE

char

1.單引號內的單個字符

2.單引號內的轉義字符

‘a’

‘中’

‘\n’

‘\u0000’

String

雙引號內的字符序列

「abc」

「中國」

null

引用類型的空指向

null

 

錯誤的字面量

相似如下的字面量都輸錯誤的:

int的最大值還要大1的直接量2147483648是錯誤的由於超過int表示的範圍,應該使用2147483648L表示);

long的最大值大1的直接量9223372036854775808L是錯誤的由於超過long表示的範圍,應該使用 BigInteger類來表示:BigInteger b = new BigInteger("9223372036854775808");

一個單引號:''' (正確的寫法是:'\'' )

一個反斜槓:'\' (正確的寫法是:'\\' )

帶有"引號的字符串:"abc"xyz" (正確的寫法是:"abc\"xyz")

帶有\反斜槓的字符串:"abc\xyz" (正確的寫法是:"abc\\xyz")

相關文章
相關標籤/搜索