yucan  
          日歷
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456
          統(tǒng)計
          • 隨筆 - 1
          • 文章 - 1
          • 評論 - 0
          • 引用 - 0

          導(dǎo)航

          常用鏈接

          留言簿

          文章檔案

          相冊

          搜索

          •  

          最新評論

           

          一、表達式

          1.當對兩個數(shù)值型數(shù)據(jù)進行運算時,運算的結(jié)果至少為int型;如果有一個級別比int型高,則運算結(jié)果的類型與類型級別高的相同——類型自動提升,是在運算前完成的。四則運算外加求余運算均遵循運算前類型自動提升規(guī)則。

          2.開發(fā)程序時,盡量不要使用“+”操作符的數(shù)值正號的功能,會降低代碼的可讀性。

          3.“+”也用于把兩個字符串連接到一起。如果將數(shù)字與字符串組合連接到一起時,“+”會將數(shù)值作為字符串處理,執(zhí)行字符串連接功能。Java程序中看到類似于””+i(其中i為數(shù)值型數(shù)據(jù))這樣的代碼,其作用是將數(shù)值型轉(zhuǎn)換為字符串。

          4.“%”結(jié)果的符號,由左邊的操作數(shù)決定。浮點數(shù)一樣可以求余數(shù)。Java中,求余運算按如下步驟實現(xiàn):

          (1)求出參與運算兩數(shù)的絕對值。

          (2)用左邊操作數(shù)的絕對值減去右邊操作數(shù)的絕對值,得到差。

          (3)如果差比右邊操作數(shù)的絕對值大,就用差減去右邊操作數(shù)的絕對值,得到新差。

          (4)重復(fù)步驟(2),直至差比右邊的操作數(shù)小,將差作為結(jié)果返回。

          5.自增自減運算符并不進行類型自動提升。本書不建議在表達式內(nèi)使用自增或自減運算符,會降低可讀性。

          6.“==”運算符不但可以將類型相同的值進行比較,類型不同的值只要具有可比性,也可以進行比較,所有的數(shù)值型值之間可以相互比較。對于8種基本數(shù)據(jù)類型而言,boolean型只能與boolean型比較,其他7種則可以相互比較。

          7.Java中規(guī)定兩個“NaN”相比返回false,任何數(shù)值與“NaN"進行大小比較永遠返回false。

          8.邏輯運算符,其操作數(shù)只能是boolean型。

          9.沒有特殊需要一般應(yīng)該采用短路邏輯運算。

          10.三元運算符:(<邏輯表達式>)?<結(jié)果表達式1> : <結(jié)果表達式2>,如果表達式1、2為引用類型,則永遠都是對的(指語法是對的,因為結(jié)果表達式1和2如果為基本類型,則要求其類型是兼容的,即如果結(jié)果表達式1和2的運算結(jié)果類型不同,其值類型要可以相互轉(zhuǎn)換,如果不能轉(zhuǎn)換,則編譯報錯)。

          11.對于三元運算符返回值類型與表達式1和2類型間的關(guān)系,對于基本數(shù)據(jù)類型,如果兩個表達式類型不同,對int型以下(包括int型)的字面常量將盡量進行窄化,如果不能進行窄化,最后返回級別高的類型。

          12.位運算允許對整數(shù)中的單個比特進行操作,具有類型自動提升功能,經(jīng)過位運算的結(jié)果至少是int型。

          13.移位運算也只能處理整型,具有類型自動提升功能。在移位前,Java系統(tǒng)首先把要移的位數(shù)與被移數(shù)的位數(shù)求余數(shù),然后移動余數(shù)個位數(shù)。

          14.Java中的賦值運算符有返回值,可以把a=b看作一個表達式,賦值表達式,返回值就是b的值。

          15.常用數(shù)學(xué)工具包——java.lang.Math類,提供方法用于幫助執(zhí)行基本數(shù)學(xué)函數(shù)的運算。

          二、流程控制

          1.Java中的分支語句有兩種,if條件語句與switch多分支語句。

          2.建議不論if語句要控制的是語句序列還是單個語句,均使用花括號。

          3.else總是與離其最近的if配對。

          4.switch只能用于檢查相等的情況;switch語句圓括號中的表達式主要是基本類型表達式和枚舉類型表達式,如果基本類型的表達式,則要求其返回值類型必須是int兼容型的(byte、short、char以及int4種,byte、short、char可以自動提升轉(zhuǎn)換為int型)。

          5.case表達式必須是常量,字面常量或final的變量。

          6.switch根本的執(zhí)行流程為,switch語句將判斷表達式的值與case后面表達式的值進行匹配,找到匹配的case,從此case開始執(zhí)行,若沒有匹配的case但有default,則從default開始執(zhí)行,直至遇到break語句或者switch語句結(jié)束為止。

          7.Java中并沒有規(guī)定default與其他case之間的順序,可以將其放在任何位置,但是為了增強代碼的可讀性,一般放在最后。最后一個break語句可以不寫,但是為了提高可讀性,一般都寫上。

          8.while循環(huán)適用于不知道代碼需要被重復(fù)的次數(shù),但有明確的終止條件的循環(huán)流程。

          9.若明確知道循環(huán)體需要執(zhí)行的次數(shù),則使用for循環(huán)是最佳選擇。

          10.for循環(huán)的初始化表達式可以聲明及初始化一個或多個相同類型的變量,一般是用作循環(huán)控制,其作用域為循環(huán)體、條件表達式和更新語句列表;條件表達式最多只能有一個,如果沒有,相當于表達式永遠為true;更新語句列表在每次循環(huán)的最后執(zhí)行,可以寫任何語句,并且可以寫多個語句,在這部分用逗號作為語句分隔符,而不是分號。

          11.Java中break語句有兩個用法:在switch語句中表示一個case的結(jié)束,退出switch;作為循環(huán)控制語句,在循環(huán)體中表示退出循環(huán)。如果嵌套了多層循環(huán),break跳出的是離其最近的一層循環(huán)。如何處理在內(nèi)層循環(huán)使用中使用break跳出外層循環(huán)的問題,這時就需要用到標號語句。聲明一個標號的語法為“標號名:”,標號名要滿足Java標識符的命名規(guī)則??梢詫?nèi)、外多層循環(huán)同時使用標號,但在同一個作用域中,標號的名稱不能相同。

          12.Java中有g(shù)oto關(guān)鍵字,但是只是把goto作為關(guān)鍵字保留,其并不是一個語句,不能出現(xiàn)在源代碼中。

          13.使用continue與循環(huán)可以很方便地編寫出把一個集合中不滿足條件的元素去掉的邏輯,有時稱為“反邏輯”。在很多情況下,正邏輯如果不容易表達,則往往反邏輯簡單。

          posted on 2011-06-25 22:34 yucan 閱讀(180) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
           
          Copyright © yucan Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 铜陵市| 西林县| 涞源县| 宿州市| 海兴县| 华安县| 壤塘县| 财经| 南丰县| 沧源| 通城县| 涞水县| 珲春市| 高要市| 天柱县| 府谷县| 巴塘县| 永仁县| 资阳市| 西充县| 黄梅县| 黑龙江省| 宁波市| 正宁县| 宜川县| 桓台县| 阜宁县| 泸水县| 沅陵县| 青田县| 定边县| 池州市| 兴宁市| 新闻| 台州市| 确山县| 遂宁市| 西和县| 时尚| 保定市| 宿州市|