yucan |
|
|||
日歷
統計
導航常用鏈接留言簿文章檔案相冊搜索最新評論
|
一、表達式 1.當對兩個數值型數據進行運算時,運算的結果至少為int型;如果有一個級別比int型高,則運算結果的類型與類型級別高的相同——類型自動提升,是在運算前完成的。四則運算外加求余運算均遵循運算前類型自動提升規則。 2.開發程序時,盡量不要使用“+”操作符的數值正號的功能,會降低代碼的可讀性。 3.“+”也用于把兩個字符串連接到一起。如果將數字與字符串組合連接到一起時,“+”會將數值作為字符串處理,執行字符串連接功能。Java程序中看到類似于””+i(其中i為數值型數據)這樣的代碼,其作用是將數值型轉換為字符串。 4.“%”結果的符號,由左邊的操作數決定。浮點數一樣可以求余數。Java中,求余運算按如下步驟實現: (1)求出參與運算兩數的絕對值。 (2)用左邊操作數的絕對值減去右邊操作數的絕對值,得到差。 (3)如果差比右邊操作數的絕對值大,就用差減去右邊操作數的絕對值,得到新差。 (4)重復步驟(2),直至差比右邊的操作數小,將差作為結果返回。 5.自增自減運算符并不進行類型自動提升。本書不建議在表達式內使用自增或自減運算符,會降低可讀性。 6.“==”運算符不但可以將類型相同的值進行比較,類型不同的值只要具有可比性,也可以進行比較,所有的數值型值之間可以相互比較。對于8種基本數據類型而言,boolean型只能與boolean型比較,其他7種則可以相互比較。 7.Java中規定兩個“NaN”相比返回false,任何數值與“NaN"進行大小比較永遠返回false。 8.邏輯運算符,其操作數只能是boolean型。 9.沒有特殊需要一般應該采用短路邏輯運算。 10.三元運算符:(<邏輯表達式>)?<結果表達式1> : <結果表達式2>,如果表達式1、2為引用類型,則永遠都是對的(指語法是對的,因為結果表達式1和2如果為基本類型,則要求其類型是兼容的,即如果結果表達式1和2的運算結果類型不同,其值類型要可以相互轉換,如果不能轉換,則編譯報錯)。 11.對于三元運算符返回值類型與表達式1和2類型間的關系,對于基本數據類型,如果兩個表達式類型不同,對int型以下(包括int型)的字面常量將盡量進行窄化,如果不能進行窄化,最后返回級別高的類型。 12.位運算允許對整數中的單個比特進行操作,具有類型自動提升功能,經過位運算的結果至少是int型。 13.移位運算也只能處理整型,具有類型自動提升功能。在移位前,Java系統首先把要移的位數與被移數的位數求余數,然后移動余數個位數。 14.Java中的賦值運算符有返回值,可以把a=b看作一個表達式,賦值表達式,返回值就是b的值。 15.常用數學工具包——java.lang.Math類,提供方法用于幫助執行基本數學函數的運算。 二、流程控制 1.Java中的分支語句有兩種,if條件語句與switch多分支語句。 2.建議不論if語句要控制的是語句序列還是單個語句,均使用花括號。 3.else總是與離其最近的if配對。 4.switch只能用于檢查相等的情況;switch語句圓括號中的表達式主要是基本類型表達式和枚舉類型表達式,如果基本類型的表達式,則要求其返回值類型必須是int兼容型的(byte、short、char以及int4種,byte、short、char可以自動提升轉換為int型)。 5.case表達式必須是常量,字面常量或final的變量。 6.switch根本的執行流程為,switch語句將判斷表達式的值與case后面表達式的值進行匹配,找到匹配的case,從此case開始執行,若沒有匹配的case但有default,則從default開始執行,直至遇到break語句或者switch語句結束為止。 7.Java中并沒有規定default與其他case之間的順序,可以將其放在任何位置,但是為了增強代碼的可讀性,一般放在最后。最后一個break語句可以不寫,但是為了提高可讀性,一般都寫上。 8.while循環適用于不知道代碼需要被重復的次數,但有明確的終止條件的循環流程。 9.若明確知道循環體需要執行的次數,則使用for循環是最佳選擇。 10.for循環的初始化表達式可以聲明及初始化一個或多個相同類型的變量,一般是用作循環控制,其作用域為循環體、條件表達式和更新語句列表;條件表達式最多只能有一個,如果沒有,相當于表達式永遠為true;更新語句列表在每次循環的最后執行,可以寫任何語句,并且可以寫多個語句,在這部分用逗號作為語句分隔符,而不是分號。 11.Java中break語句有兩個用法:在switch語句中表示一個case的結束,退出switch;作為循環控制語句,在循環體中表示退出循環。如果嵌套了多層循環,break跳出的是離其最近的一層循環。如何處理在內層循環使用中使用break跳出外層循環的問題,這時就需要用到標號語句。聲明一個標號的語法為“標號名:”,標號名要滿足Java標識符的命名規則。可以對內、外多層循環同時使用標號,但在同一個作用域中,標號的名稱不能相同。 12.Java中有goto關鍵字,但是只是把goto作為關鍵字保留,其并不是一個語句,不能出現在源代碼中。 13.使用continue與循環可以很方便地編寫出把一個集合中不滿足條件的元素去掉的邏輯,有時稱為“反邏輯”。在很多情況下,正邏輯如果不容易表達,則往往反邏輯簡單。 |
![]() |
|
Copyright © yucan | Powered by: 博客園 模板提供:滬江博客 |