1. 程式人生 > >《第八章》—— 表示式和運算子

《第八章》—— 表示式和運算子

 


字面值


●  字面值表示一個指定型別的明確的、固定的值,所以它們的值是在編譯時可知、

注意: 對於引用型別變數,字面值null 表示該變數沒有設定為記憶體中的資料。

注意:  無後輟的實數字面值是double 型別, 而不是float 型別。


字元字面量


●  字元字面量可以是: 單子字元、一個簡單的轉義序列、一個十六進位制轉義序列 或者一個 Unicode  轉義序列。

字元字面值的型別是char

簡單的轉義序列 是一個 反斜槓後面跟著單個字元

十六進位制轉義序列是一個反斜槓, 後面跟著一個大寫或者小寫的x, 後面在跟著4個十六進位制數字。

Unicode  轉義序列是一個反斜槓,後面跟著一個大寫或者小寫的 u,後面在跟著4個十六進位制數字。


字串字面值


● 字串字面量使用雙引號標記, 有兩種字串字面值型別:

常規字串字面值

逐字字串字面值

● 常規字串字面量由雙引號內的字元序列組成。常規字串字面量 中可以包含的有:

字元;  簡單的轉義序列; 十六進位制和Unicode 轉義序列

逐字字串它以一個@ 字元作為前輟, 它有以下特徵:

(1)逐字字面量與常規字串字面量的區別在於: 轉義字串不會被求值。  在雙引號中間的所有內容, 包括通常被認為是轉義序列的內容。都嚴格按字串列出的那樣列印。

(2)逐字字面量唯一例外的雙引號組,它們被解釋為單個雙引號字元。

● 注意: 編譯器讓相同的字串字面值共享堆中同一記憶體位置以節約記憶體。

● 注意: 字串是引用型別,所以字串也可以被賦予null值, 表示字串變數不引用字串。


比較引用型別


● 對於大多數引用型別來說,比較它們的相等性時,將只比較它們的引用的物件的大小。

如果引用相等, 也就是說, 如果它們指向記憶體中相同物件,那麼相等性比較為true, 否則為false。 即使記憶體中兩個分離的物件在所有其他方面都完全相等, 但它們 並不指向記憶體中相同的物件。也為false。

上面稱為淺比較。

●  string型別物件是引用型別,在比較字串的相等性時,將比較他們的長度和內容(區分大小寫)。

如果兩個字串有相同的長度和內容(區分大小寫), 那麼相等性比較返回true, 即使它們佔用不同的記憶體區域。

上述的稱為深比較。

● 委託也是引用型別,使用的也是深比較。 比較委託的相等性時,如果兩個委託都是null, 或者兩者的呼叫列表中有相同數目的成員, 並且呼叫列表相匹配, 那麼比較會返回true。

● 比較數值表示式,將比較型別和值。 比較enum 型別時,比較運算元的實際值。