日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java直接量

發布時間:2025/3/12 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java直接量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

直接量是指在程序中通過源代碼直接給出的值,例如在int a = 8;代碼中,為變量 a 所分配的初始值 8 就是一個直接量。

直接量的類型

并不是所有的數據類型都可以指定直接量,能指定直接量的通常只有三種類型:基本類型、字符串類型和 null 類型。具體而言,Java 支持如下 8 種類型的直接量。

1 . int 類型的直接量
在程序中直接給出的整型數值,可分為二進制、十進制、八進制和十六進制 4 種,其中二進制需要以 0B 或 0b 開頭,八進制需要以 0 開頭,十六進制需要以 0x 或 0X 開頭。例如 123、012(對應十進制的 10)、0x12(對應十進制的 18)等。

2 . long 類型的直接量
在整型數值后添加 l 或 L 后就變成了 long 類型的直接量。例如 3L、0x12L(對應十進制的 18L)。

3 . float 類型的直接量
在一個浮點數后添加 f 或 F 就變成了 float 類型的直接量,這個浮點數可以是標準小數形式,也可以是科學計數法形式。例如 5.34F、3.14E5f。

4 . double 類型的直接量
直接給出一個標準小數形式或者科學計數法形式的浮點數就是 double 類型的直接量。例如 5.36、3.1415。

5 . boolean 類型的直接量
這個類型的直接量只有 true 和 false。

6 . char 類型的直接量
char 類型的直接量有三種形式,分別是用單引號括起來的字符、轉義字符和 Unicode 值表示的字符。例如‘a’,‘\n’和‘\u0061’。

7 . String 類型的直接量
一個用雙引號括起來的字符序列就是 String 類型的直接量。

在大多數其他語言中,包括 C/C++,字符串作為字符的數組被實現。然而,在 Java 中并非如此。在 Java 中,字符串實際上是對象類型。

8 . null 類型的直接量
這個類型的直接量只有一個值,即 null。

在上面的 8 種類型的直接量中,null 類型是一種特殊類型,它只有一個值:null。而且這個直接量可以賦給任何引用類型的變量,用以表示這個引用類型變量中保存的地址為空,即還未指向任何有效對象。

直接量的賦值

通常總是把一個直接量賦值給對應類型的變量,例如下面代碼都是合法的。

int a = 5; char c = 'a'; boolean b = true; float f = 5.22f; double d = 4.17; String name = "中國第一"; String url = "http://www.baidu.com";

除此之外,Java 還支持數值之間的自動類型轉換,因此允許把一個數值直接量直接賦給另一種類型的變量,這種賦值必須是系統所支持的自動類型轉換,例如把 int 類型的直接量賦給一個 long 類型的變量。

String 類型的直接量不能賦給其他類型的變量,null 類型的直接量可以直接賦給任何引用類型的變量,包括 String 類型。boolean 類型的直接量只能賦給 boolean 類型的變量,不能賦給其他任何類型的變量。

關于字符串直接量有一點需要指出,當程序第一次使用某個字符串直接量時,Java 會使用常量池(constant pool)來緩存該字符串直接量,如果程序后面的部分需要用到該字符串直接量時,Java 會直接使用常量池(constantpool)中的字符串直接量。

注意:
由于 String 類是一個典型的不可變類,因此 String 對象創建出來的就不可能改變,因此無需擔心共享 String 對象會導致混亂。

常量池(constant pool)指的是在編譯期被確定,并被保存在已編譯的 .class 文件中的一些數據,它包括關于類、方法、接口中的常量,也包括字符串直接量。

示例程序

String s0 = "hello"; String s1 = "hello"; String s2 = "he" + "llo"; System.out.println(s0 == s1); System.out.println(s0 == s2);

運行結果為:

true true

Java 會確保每個字符串常量只有一個,不會產生多個副本。例子中的 s0 和 s1 中的“hello”都是字符串常量,它們在編譯期就被確定了,所以 s0 = s1 返回 true。而“he”和“llo”也都是字符串常量,當一個字符串由多個字符串常量連接而成時,它本身也是字符串常量,s2 同樣在編譯期就被解析為一個字符串常量,所以 s2 也是常量池中“hello”的引用。因此,程序輸出 s0 == s1 返回 true,s1 == s2 也返回 true。

總結

以上是生活随笔為你收集整理的Java直接量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。