首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java SE 基礎復習:基本語法、資料型別、運算符與流程控制核心知識點總結

     編輯:Java 綜合教學

Java SE 基礎復習:基本語法、資料型別、運算符與流程控制核心知識點總結

基本語法與規範

  • 標識符:只能包含字母、數字、$、_,數字不能開頭
  • 註釋:單行 // 可嵌套,多行 /* */ 不可嵌套
  • 命令行技巧:資料夾按住 Shift + 右鍵 →「在這裡打開命令視窗」
  • 跨平台原理:JVM 屏蔽作業系統差異,一次編譯、到處運行

資料型別詳解

類型位數範圍/說明
byte8-128 ~ 127
short16-32,768 ~ 32,767
int32-2^31 ~ 2^31-1(預設整數型別)
long64-2^63 ~ 2^63-1(需加 L 後綴)
float32IEEE 754,24 位精度(需加 f 後綴)
double64IEEE 754,53 位精度(預設浮點型別)
char160 ~ 65,535(Unicode 字元)
boolean-true/false,無明確大小規定

關鍵點:

  • 整數字面值預設 int,超出範圍需加 L(如 9999999999L)
  • 浮點字面值預設 double,float f = 3.12f; 必須加 f
  • char 佔 2 位元組,單引號內必須且只能有一個字元
  • 計算機以補碼形式運算,源碼/反碼/補碼轉換規則需掌握

運算符深度解析

位移運算符

  • >>:算術右移,符號位填充高位
  • >>>:邏輯右移,0 填充高位
  • <<:左移,低位補 0
  • 移位量對 32 取模(int)或 64 取模(long),如 1 << 35 ≡ 1 << 3

類型轉換規則

  • 隱式轉換(向上):小型別 → 大型別(byte/short/char → int → long → float → double)
  • 強制轉換(向下):大型別 → 小型別,可能精度損失或溢位(如 (byte)129 = -127)
  • 複合賦值:b += 1 隱含強轉,b = b + 1 需顯式強轉

算術運算陷阱

  • 整數除以 0 → ArithmeticException
  • 浮點數除以 0 → Infinity 或 NaN,不拋異常
  • 10 / 3 = 3(整數除法),(float)(10/3) = 3.0(先算再轉),10/3.0 = 3.333...

字串連接與運算優先級

  • 'a' + 1 = 98(char 提升為 int)
  • "hello" + 'a' + 1 = "helloa1"(左到右,遇字串即連接)
  • 'a' + 1 + "hello" = "98hello"

邏輯運算符

  • &&、||:短路運算
  • &、|、^:非短路,亦可作位運算
  • ^(異或):相同為 false,不同為 true

流程控制

if vs 三元運算符

  • 三元運算符 a ? b : c 需有明確結果值,b、c 必須為運算式
  • if 為語句,if(x<2) int z=3; 錯誤(聲明非語句),需加大括號

switch 進階

  • 支援型別:byte、short、char、int、enum (1.5+)、String (1.7+)
  • case 穿透特性:無 break 繼續執行後續 case
  • default 位置任意,執行順序永遠最後
  • 多標籤共用:case 1: case 2: case 3: ...

帶標籤的 break/continue

U: for (int x=0; x<=4; x++) {
    for (int y=0; y<=3; y++) {
        if (y==2) break U; // 直接跳出外層循環
        System.out.println("x=" + x + ",y=" + y);
    }
}
  • 標籤可用於任何語句塊(含 if)
  • continue 標籤 同理,跳過當前迭代進入下一輪

其他實用知識

  • 靜態導入:import static java.lang.Math.*; 直接用 round() 等靜態方法
  • Scanner 陷阱:nextInt() 不消耗換行符,後接 nextLine() 會讀到空行。解決:兩次 Scanner 或全用 nextLine() 再轉型
  • Math.round:double→long、float→int,四捨五入(正數 +0.5 向下取整)
  • 編碼:UTF-8 中文 3 位元組,GBK 中文 2 位元組
  • 類路徑:javac -d . MyProgram.java 當前目錄生成包結構
  • 訪問權限:private < default < protected < public

內部類分類

類型實例化語法特點
成員內部類Outer.Inner oi = new Outer().new Inner();可直接訪問外部類私有成員
靜態內部類Outer.Inner oi = new Outer.Inner();不依賴外部類實例,只能訪問靜態成員
局部內部類方法內定義訪問局部變量需 final(或實際最終不變)
匿名內部類new Interface() { ... }僅用於重寫單一方法,如執行緒、監聽器

equals 重寫規範:參數必須為 Object,否則為重載;== 比較引用地址/基本型別值,equals 比較邏輯相等(需重寫)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved