基本程式設計結構
一、型別轉換
- 數值型別之間的轉換
- 強制型別轉換
a) 將一個數值強制轉換成另一種型別時,如果超出目標型別的便是範圍,結果就會截斷成一個完全不同的值。(如:(byte)300的實際值為44)
b) 將boolean型別的值轉換成其他型別時,可使用三目表示式(如:b?1:0 將boolean轉換成int型)
二、運算子
- Java沒有逗號運算子,但可以在for語句的第1部分和第3部分使用逗號分隔表示式列表
- 運算子優先順序
三、列舉型別
四、字串
1. String類被稱為不可變字串,不可修改一個字串中的任何一個字元,但可以讓其引用另外一個字串。不可變字串優點:編譯器可以讓字串共享,共享所帶來的高效率遠遠勝於提取、拼接字串所帶來的低效率。
2. 當一個字串與一個非字串進行拼接時,後者被轉換成字串(任何一個Java物件都可以轉換成字串)
3. 常用String靜態方法
如果需要把多個字串放在一起,用一個定界符分割,可以使用靜態join方法。
equals方法檢測兩個字串是否相等,如需不區分大小寫,可以使用equalsIgnoreCase。
trim方法返回一個刪除了源字串頭部和尾部的空格的新字串。
format方法建立一個格式化的字串而不列印輸出
4. StringBuffer:效率較低,但允許採用多執行緒的方式執行新增或刪除字元的操作,而jdk5.0引入的StringBuilder是單執行緒的。這兩個類的API是相同的。
五、 輸入輸出
1.控制檯讀取輸入,首先需要構造一個Scanner物件,並與標準輸入流(即System.in)關聯(即 Scanner in = new Scanner(System.in);)。Scanner中,nextLine()讀取一行(包含空格,以回車為分隔符);next()讀取一個單詞(以空格為分隔符);nextInt()讀取一個整數,nextDouble()讀取一個浮點數…
2. 格式化輸出(System.out.printf())
用於printf的轉換符、標誌(控制格式化輸出)、日期與時間的轉換符(詳見博文)。
3. 檔案輸入輸出
要想對檔案進行讀取,需要一個用File物件構造的Scanner物件(即Scanner in = new Scanner(Paths.get(“myfile.txt”),“utf-8”))
要想寫入檔案,就需要構造一個PrintWriter物件。(即PrintWriter out = new PrintWriter(“myfile.txt”,”utf-8”),當檔案不存在時會自動建立檔案)
六、控制流程
1. 塊(即複合語句)是由一堆大括號括起來的若干條簡單的Java語句。不能再巢狀的兩個塊中宣告同名的變數。
2. 中斷控制流程語句(break、continue)
在一條語句或語句塊前加上標籤及冒號(如 hello:),使得可以在迴圈語句中使用break 標籤名或continue 標籤名(如break hello; continue hello;),能跳出或跳到標籤所代表的語句塊。
七、大數值
1. BigInteger類實現了任意精度的證書運算,BigDecimal實現了任意精度的浮點數運算,但不可以使用算術運算子(+-*/%),而是使用相應的方法
八、陣列
1. 數字陣列所有元素會被初始化為0,boolean陣列是false,物件陣列的元素則是null。
2. 常用Arrays類靜態方法
列印陣列可使用Arrays.toString(a);
Arrays.copyOf()將一個數組的所有值拷貝到一個指定長度的新陣列中,如果新陣列長度小於源陣列,則只拷貝最前面的資料元素,否則則對多餘的元素自動賦值,規則參考上一條。
Arrays.sort()對數值型陣列進行排序
Arrays.binarySearch()採用二分搜尋演算法查詢值
Arrays.fill()將陣列的所有資料元素設定為同一個引數
Arrays.equal()如果兩個陣列的大小及其下標對應的元素相等,則返回true