沒有特殊說明,個人全部這個系列的Java13的筆記都是從廖老師那裏摘抄、總結過來的,侵刪java
兜兜轉轉到了大四,學過了C,C++,C#,Java,Python,學一門丟一門,到了最後仍是要把Java撿起來。雖然Python好寫舒服,可是畢竟不能徹底面向對象,也沒有那麼多的應用場景,因此,奉勸看到本文的各位,仍是提早學好C#或者Java,話很少說,這個系列,幹就完了!數組
println
是print line的縮寫,表示輸出並換行。所以,若是輸出後不想換行,能夠用print()
System.out.printf()
,經過使用佔位符%?
,printf()
能夠把後面的參數格式化成指定格式%%
表示一個%
字符自己。佔位符 | 說明 |
---|---|
%d | 格式化輸出整數 |
%x | 格式化輸出十六進制整數 |
%f | 格式化輸出浮點數 |
%e | 格式化輸出科學計數法表示的浮點數 |
%s | 格式化字符串 |
java.util.Scanner
,建立Scanner
對象並傳入System.in
,Scanner
會自動轉換數據類型,所以沒必要手動轉換if
語句塊只有一行語句時,能夠省略花括號{},可是儘可能不要省略花括號,這樣在版本控制系統的時候會出現問題。if
時正確的方式是按照判斷範圍從大到小依次判斷,或者從小到大判斷,不要從中間範圍判斷。if
時,還要特別注意邊界條件,>
和>=
是不一樣的。注意判斷浮點數相等用==
判斷不靠譜,正確的方法是利用差值小於某一個臨界值來判斷。app
判斷引用類型相等ui
值類型的變量
是否相等,能夠使用==
運算符。可是,判斷引用類型的變量
是否相等,==
表示是否指向同一個對象,卻不表示對象的值是否相同。equals()
方法
equals()
時其中一個變量是null
那麼會報錯NullPointerException
null
的變量放到前面"hello".equals(s)
使用switch
時,注意case
語句並無花括號{}
3d
若是有幾個case
語句執行的是同一組語句塊,能夠在執行語句前多放幾個case
版本控制
使用switch
語句時,只要保證有break
,case
的順序不影響程序邏輯code
使用IDE時,能夠自動檢查是否漏寫了break
語句和default
語句,方法是打開IDE的編譯檢查。對象
switch表達式blog
->
,若是有多條語句,須要用{}
括起來,不要寫break
語句public class Main { public static void main(String[] args) { String fruit = "apple"; switch (fruit) { case "apple" -> System.out.println("Selected apple"); case "pear" -> System.out.println("Selected pear"); case "mango" -> { System.out.println("Selected mango"); System.out.println("Good choice!"); } default -> System.out.println("No fruit selected"); } } }
switch
語法,不但不須要break
,還能夠直接返回值。public class Main { public static void main(String[] args) { String fruit = "apple"; int opt = switch (fruit) { case "apple" -> 1; case "pear", "mango" -> 2; default -> 0; }; // 注意賦值語句要以;結束 System.out.println("opt = " + opt); } }
{...}
裏,而後,用yield
返回一個值做爲switch
語句的返回值。while
循環是一個死循環,可是,Java的int
類型有最大值,達到最大值後,再加1會變成負數,結果,意外退出了while
循環。for (初始條件; 循環檢測條件; 循環後更新計數器) { // 執行語句 }
使用for
循環時,千萬不要在循環體內修改計數器!字符串
爲了保證變量應該把訪問範圍縮到最小的原則,對於for循環中使用的i
最好在循環體內定義。
for
循環還能夠缺乏初始化語句、循環條件和每次循環更新語句
for each循環
public class Main { public static void main(String[] args) { int[] ns = { 1, 4, 9, 16, 25 }; for (int n : ns) {//注意形式,先定義數組元素n,注意這裏再也不是計數器n,它對應着數組的每個元素,在循環的主語句中能夠直接調用。 System.out.println(n); } } }
for each
循環可以遍歷全部「可迭代」的數據類型,包括後面會介紹的List
、Map
等while
循環仍是for
循環,有兩個特別的語句能夠使用,就是break
語句和continue
語句。break
語句老是跳出最近的一層循環。