基本語法與資料類型
- 大小寫敏感,駝峰命名,
main 必須 public static void
- 八大基本型別:
byte/short/int/long(整數)、float/double(浮點)、char(UTF-16 碼元)、boolean
- 整數字面值預設
int,long 需尾綴 L;浮點預設 double,float 需 F
- JDK 7+ 支援底線分隔:
1_000_000
- 無無號型別,所有型別大小跨平台固定
浮點數陷阱
float/double 為二進制近似,2.0 - 1.1 = 0.8999...
- 財務計算嚴禁用浮點,改用
BigDecimal
- 特殊值:
Infinity、-Infinity、NaN(Double.isNaN() 判斷)
字串處理核心
String 不可變,+ 編譯器優化為 StringBuilder
== 比較引用,equals() 比較內容
- 字串常量池:字面值自動入池,
new String() 強制建新物件
- 常用 API:
substring、split、join、strip (JDK 11+)
輸入輸出基礎
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String line = sc.nextLine();
sc.close();
next() 讀詞(空白分隔),nextLine() 讀整行
- 格式化輸出:
System.out.printf("%.2f", 3.14159)
控制流程
switch 支援 String、enum(JDK 7+),case 可多值(JDK 12+)
- 三元運算子:
condition ? expr1 : expr2
- 位運算:
& | ^ ~ << >> >>>(無 <<<)
數學工具
Math 靜態方法:sqrt、pow、random、round(回傳 long)
- 嚴格浮點:類別加
strictfp 強制 IEEE 754