一、類型轉換
數值類型之間的轉換
強制類型轉換
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