Java基礎之字面值


概要:什么是字面值

字面值是指在程序中無需變量保存,可直接表示為一個具體的數字或字符串的值。比如
a = b * 2這個語句中,2就是一個字面值,它本身就是一個具體的值。

在Java源代碼中,字面值用於表示固定的值(fixed value)。數值型的字面值是最常見的,字符串字面值可以算是一種,當然也可以把特殊的null當做字面值。字面值大體上可以分為整型字面值、浮點字面值、字符和字符串字面值、特殊字面值

1. 整型字面值

從形式上看是整數的字面值歸類為整型字面值。例如: 10, 100000L, 'B'、0XFF這些都可以稱為整型字面值。整型字面值可以用十進制、十六、八、二進制來表示。十進制很簡單,二、八、十六進制的表示分別在最前面加上0B(0b)、0、0X(0x)即可,一般情況下,字面值創建的是int類型,但是int字面值可以賦值給byte, short ,char ,long ,int,只要字面值在目標范圍以內,Java會自動完成轉換,如果試圖將超出范圍的字面值賦給某一類型(比如把128賦給byte類型),編譯通不過。而如果想創建一個int類型無法表示的long類型,則需要在字面值最后面加上L或者l。通常建議使用容易區分的L。所以整型字面值包括int字面值和long字面值兩種

2. 浮點字面值

浮點字面值簡單的理解可以理解為小數。分為float字面值和double字面值,如果在小數后面加上F或者f,則表示這是個float字面值,如1.8F。如果小數后面不加F(f),如10.4。或者小數后面加上D(d),則表示這是個double字面值。另外,浮點字面值支持科學技術法表示。

float f1 = 1.23e-4F;  
float f2 = 1.23E0F;

 3 .字符及字符串字面值

Java中字符字面值用單引號括起來,如‘@’‘1’。所有的UTF-16字符集都包含在字符字面值中。不能直接輸入的字符,可以使用轉義字符,如‘\n’為換行字符。也可以使用八進制或者十六進制表示字符,八進制使用反斜杠加3位數字表示,例如'\141'表示字母a。十六進制使用\u加上4為十六進制的數表示,如'\u0061'表示字符a。也就是說,通過使用轉義字符,可以表示鍵盤上的有的或者沒有的所有字符。

常見的轉義字符序列有:

\ddd(八進制) 、 \uxxxx(十六進制Unicode字符)、\'(單引號)、\"(雙引號)、\\ (反斜杠)\r(回車符) \n(換行符) \f(換頁符) \t(制表符) \b(回格符)

字符串字面值則使用雙引號,字符串字面值中同樣可以包含字符字面值中的轉義字符序列。字符串必須位於同一行或者使用+運算符,因為java沒有續行轉義序列

4 特殊字面值

null是一種特殊的類型(type),可以將它賦給任何引用類型變量,表示這個變量不引用任何東西。如果一個引用類型變量為null,表示這個變量不可用。

還有一種特殊的class literal,用type name加上.class表示,例如String.class。首先,String是類Class(java.lang.Class)的一個實例(對象),而"This is a string"是類String的一個對象。然后,class literal用於表示類Class的一個對象,比如String.class用於表示類Class的對象String。簡單地說,class literal就是諸如String.class 、Integer.class這樣的字面值,它所表示的就是類String、類Integer。如果輸出Integer.class,你會得到class java.lang.Integer。List.class的輸出為interface java.util.List。總之,class literal用於表示類型本身!

5 在數值型字面值中使用下划線

JDK7開始,可以在數值型字面值(包括整型字面值和浮點字面值)插入一個或者多個下划線。但是下划線只能用於分隔數字,不能分隔字符與字符,也不能分隔字符與數字

規則如下:

  1. 僅限單條下划線 ,不能多條相連。
  2. 數值開頭和結尾不能出現下划線。
  3. F、D 和 L的前后不能出現下划線。
  4. 二進制前導 b 和 十六進制 x 前后不能出現下划線
public class Underline { public static void main(String[] args) { double d = 123_456_789.123_345; System.out.println(d); int i = 0b1111_1010_1111_1010_1111_1010_1111; System.out.println(Integer.toBinaryString(i)); System.out.printf("%x%n", i); long l = 0xfa_fa_fa_f; System.out.printf("%x%n", l); } } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

注意 Java 中 System.out.printf() 或 System.out.format() 中可以使用 %n 實現忽略平台間差異的換行符。對於 System.out.println(),仍然必須使用 \n

 參考:Java完全參考手冊第八版

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM