天天看點

Java程式設計思想筆記/讀書提綱(三)

第三章: 操作符

  • 3.1 更簡單的列印語句

    System.out.println("Hello World");

  • 3.2使用Java操作符
    操作符接受一個或者多個參數,并生成一個新值,幾乎所有的操作符都隻能操作“基本類型”,但是“=”,“==”,“!=”能操作所有對象,

    String

    支援“+”,“+=”
  • 3.2 優先級

    所有的數學運算都認為是從左向右運算的,Java語言中大部分運算符也是從左向右結合的,隻有單目運算符、指派運算符和三目運算符例外,其中,單目運算符、指派運算符和三目運算符是從右向左結合的,也就是從右向左運算。

    乘法和加法是兩個可結合的運算,也就是說,這兩個運算符左右兩邊的操作數可以互換位置而不會影響結果。運算符有不同的優先級,所謂優先級就是在表達式運算中的運算順序。

    一般而言,單目運算符優先級較高,指派運算符優先級較低。算術運算符優先級較高,關系和邏輯運算符優先級較低。多數運算符具有左結合性,單目運算符、三目運算符、指派運算符具有右結合性

  • 3.4 指派

    a = 4;

    含義:把值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 轉換為

    int

    :29 (截尾)
  • 3.17 提升

    double

    *

    int

    結果的精度升到

    double

    類型
  • 3.18 Java沒有

    sizeof

    sizeof

    告訴你資料項配置設定的位元組數

    Java不需要,因為所有資料類型在所有機器上面的大小都是相同的,我們不需要考慮移植問題