歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java中的字面量

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

在Java中通俗的說:int i = 1;把整數1賦值給int型變量i,整數1就是Java字面量,

同樣,String s = "abc";中的abc也是字面量。

整數字面量

整數可能是在典型的程序中最常用的類型。任何一個數字的值就是一個整數字面量。例如1,2,3和42。這些都是十進制的值,這意味著對他們的描述基於數字10。還有另外2 種進制被整數字面量使用,八進制(octal,基數是8)和十六進制(hexadecimal,基數是16)。在Java 中對八進制的值通過在它的前面加一個前導0來表示。正常的十進制的數字不用前導零。這樣,看起來有效的值09將從編譯器產生一個錯誤,因為9超出了八進制的范圍0~7。程序員對數字更常用的是十六進制,它清楚地與8的大小相匹配,如8,16,32,和64位。通過前導的0x或0X表示一個十六進制的字面量。十六進制數的范圍是0~15,這樣用A~ F(或a~f)來替代10~15。

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

字符串字面量

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

"Hello World"

"two\nlines"

"\"This is in quotes\""

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

注意:你可能知道,在大多數其他語言中,包括C/C++ ,字符串作為字符的數組被實現。然而,在Java 中並非如此。在Java中,字符串實際上是對象類型。因為Java 對字符串是作為對象實現的,因此,它有廣泛的字符串處理能力,而且功能既強又好用。

其他字面量

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

數據類型

直接量描述

舉例

int

整數直接量(可用二、十、八、十六進制表示)

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

錯誤的字面量

類似以下的字面量都輸錯誤的:

  1. 比int的最大值還要大1的直接量2147483648是錯誤的(因為超過int表示的范圍,應該使用2147483648L表示);
  2. 比long的最大值大1的直接量9223372036854775808L是錯誤的(因為超過long表示的范圍,應該使用 BigInteger類來表示:BigInteger b = new BigInteger("9223372036854775808");)
  3. 一個單引號:''' (正確的寫法是:'\'' )
  4. 一個反斜槓:'\' (正確的寫法是:'\\' )
  5. 帶有"引號的字符串:"abc"xyz" (正確的寫法是:"abc\"xyz")
  6. 帶有\反斜槓的字符串:"abc\xyz" (正確的寫法是:"abc\\xyz")

Copyright © Linux教程網 All Rights Reserved