第三章: 操作符
- 3.1 更簡單的列印語句
System.out.println("Hello World");
- 3.2使用Java操作符
操作符接受一個或者多個參數,并生成一個新值,幾乎所有的操作符都隻能操作“基本類型”,但是“=”,“==”,“!=”能操作所有對象,
支援“+”,“+=”String
- 3.2 優先級
所有的數學運算都認為是從左向右運算的,Java語言中大部分運算符也是從左向右結合的,隻有單目運算符、指派運算符和三目運算符例外,其中,單目運算符、指派運算符和三目運算符是從右向左結合的,也就是從右向左運算。
乘法和加法是兩個可結合的運算,也就是說,這兩個運算符左右兩邊的操作數可以互換位置而不會影響結果。運算符有不同的優先級,所謂優先級就是在表達式運算中的運算順序。
一般而言,單目運算符優先級較高,指派運算符優先級較低。算術運算符優先級較高,關系和邏輯運算符優先級較低。多數運算符具有左結合性,單目運算符、三目運算符、指派運算符具有右結合性
- 3.4 指派
含義:把值4賦給a = 4;
a
,
常數不能作為左值
基本類型的指派是直接将一個地方的内容直接複制到另一個地方,而并非指向一個對象的引用
對象複制是将引用從一個地方賦給另一個地方,如果對象
則c = d
,c
兩個都指向同一個原本d
的對象d
- 3.5 算數操作符
算術運算符主要用于進行基本的算術運算,如加法、減法、乘法、除法等
- **3.6 自動遞增或遞減 **
:增加一個機關++
:減少一個機關--
:會先生成值賦給b = a++
再執行自增b
:會先執行自增再生成值賦給b = ++a
b
- 3.7 關系運算符
關系運算符生成一個布爾(
boolean
)結果
關系運算符包括大于,等于,小于,小于或等于,大于或等于
值為boolean
或者true
比較兩個對象的實際内容使用false
方法equals()
比較兩個對象時,比較的是兩個對象的引用是不是指向同一個對象==
- 3.8 邏輯操作符
邏輯操作符
,&&
,||
!
能根據參數的邏輯關系,生成一個布爾值
邏輯操作符可能存在短路現象
- 3.9 直接常量
其後面的字元代表了它的類型如:int i = 200L
指數計數法:Double, Float, int, Long
float f4 = 1e-43f
- 3.10 按位操作符
按位操作符是用來操作基本類型資料的“bit”位的,即二進制位
按位與或非操作
結果:1 & 0
結果:1 | 0
1
結果:~ 0
按位操作符可與等号使用1
- 3.11 移位操作符
左移位
<<
向左移動(在低位補零)
右移位
>>
向右移動(符号為正高位插入零,符号為負在高位插入一)
右移位
>>>
向右移動(無論正負都在高位插入零)
移位可與等号一起使用:移動以後将結果賦給左邊的變量
- 3.12 三元操作符
如果boolean-exp ? value0 : value1
為boolean-exp
則執行true
,為value0
則執行false
value1
- 3.13 字元串操作符
,+
+=
"a" + "b" = "ab"
=a += b
a = a + b
- 3.14 使用操作符常犯的錯誤
使用
而不是==
=
- 3.15 類型轉換操作符
低精度轉高精度不會有精度損失(直接轉)
高精度轉低精度會有精度的損失(需要強制轉換)
- 3.16 截尾和舍入
29.7 轉換為
:29 (截尾)int
- 3.17 提升
*double
結果的精度升到int
類型double
- 3.18 Java沒有
sizeof
sizeof
告訴你資料項配置設定的位元組數
Java不需要,因為所有資料類型在所有機器上面的大小都是相同的,我們不需要考慮移植問題