直接量

直接量

所謂直接量(literal),就是程式中直接使用的數據值

基本介紹

  • 中文名:直接量
  • 外文名:literal
種類,簡介,

種類

下面列出的都是直接量:
12//數字
1.2//小數
‘hh’//字元串
true//布爾值
false//另一個布爾值
/javascript/gi //正則表達式直接量(用做模式匹配)
null//空
{x:1,y:2}//對象
[1,2,3,4,5,]//數組

簡介

直接量是指在程式中通過原始碼直接給出的值,代碼如下:
public static void main(String[] args)
{
// 在這行代碼中,為變數a所分配的初始值5就是一個直接量
int a = 5;
}
直接量的類型
並不是所有的數據類型都可以指定直接量,能指定直接量的通常只有三種類型,基本類型,字元串類型和null類型,具體而言,Java支持如下8種類型的直接量。
1),int類型的直接量:在程式中直接給出的整數數值
2),long類型的直接量:在整形數值後添加l或者L就變成了long類型的直接量
3),float類型的直接量:在一個浮點數後增加f或F就變成了float類型的直接量,這個浮點數可以是標準的小數形式,也可以是科學計數法形式
4),double類型的直接量:直接給出一個標準小數形式或者科學計數法形式的浮點數就是double類型的直接量
5),double類型的直接量:這個類型的直接量只有true和false
6),char類型的直接量:char類型的直接量有三種形式,分別是用單引號括起來的字元,轉義字元和Unicode值表示的字元
7),String類型的直接量:一個用雙引號括起來的字元序列就是String類型的直接量
8),null類型的直接量:這個類型的直接量只有一個值,即null
在上面的8種類型的直接量中,null類型是一種特殊類型,它只有一個值,null,而且這個直接量可以賦給任何引用類型的變數,用以表示這個引用類型變數中保存的地址為空,即
還未指向任何有效對象。
直接量的賦值
通常總是把一個直接量賦值給對應類型的變數,除此之外,還有兩點需要注意:
1),Java還支持數值之間的自動類型轉換,因此允許把一個數值直接量直接賦給另一種類型的變數,這種賦值必須是系統所支持的自動類型轉換。
比如把int類型的直接量賦給一個long類型的變數。
2),String類型的直接量不能賦給其他類型的變數,null類型的直接量可以直接賦給任何引用類型的變數,包括String類型。
boolean類型的直接量只能賦給boolean類型的變數,不能賦給其他任何類型的變數。
關於字元串補充
先補充一個概念,什麼是常量池?常量池(constant pool)值的是在編譯期被確定,並被保存在已編譯的.class檔案中的一些數據,常量池包括了一些類,方法,接口中的常量
也包括字元串直接量。
當程式第一次使用某個字元串直接量時,Java會使用常量池來快取該字元串直接量,如果程式後面的部分需要用到該字元串直接量時,Java會直接使用常量池中的字元串直接量。
String類是一個典型的不可變類,因此String對象創建出來就不可能被改變,所以無須擔心共享String對象會導致混亂。
Java會確保每個字元串常量只有一個,不會產生多個副本。代碼中使用一個字元串,他們在編譯期就被確定下來了,在使用的時候,直接從該常量池中拿出來就好了。
public static void main(String[] args)
{
String name1 = "LinkinPark";
String name2 = "LinkinPark";
String name3 = "Linkin" + "Park";
// 下面2行代碼輸出都為true
System.out.println(name1 == name2);
System.out.println(name1 == name3);
}

相關詞條

熱門詞條

聯絡我們