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

Java 入門核心知識體系(一):開發環境、基礎語法、流程控制、方法、面向對象、UML、數組與 Object 類

     編輯:Java 綜合教學

Java 入門核心知識體系(一)

本文面向 Java 初學者,系統梳理從開發環境搭建到核心語法、面向對象基礎、UML 建模、數組操作及 Object 類常用方法的完整知識體系,配合代碼範例與圖表,打牢進階基礎。

一、開發工具與環境配置

EditPlus + JDK 整合

工具參數設定初始目錄
javac 編譯-d . "$(FileName)"$(FileDir)
java 執行"$(FileNameNoExt)"$(FileDir)
javap 反編譯"$(FileNameNoExt)"$(FileDir)

二、HelloWorld 解剖與核心概念

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  • 關鍵字:public、class、static、void 等均小寫。
  • 命名規範:類名帕斯卡(HelloWorld)、方法/變數駝峰(main、args)、常量全大寫(MAX_VALUE)。
  • JDK vs JRE:JDK = JRE + 開發工具;JRE = JVM + 類庫。
  • 字節碼:.class 文件,JVM 指令集,跨平台核心;二進制,含操作碼與操作數。
  • 數據單位:8 bit = 1 Byte;1024 進制(KB/MB/GB/TB)。

三、數據類型與轉換

基本型別(8 種)

類別類型位數預設值範圍/說明
整數byte80-128~127
short160-32768~32767
int320-2^31~2^31-1
long640L-2^63~2^63-1
浮點float320.0f單精度,尾數 6~7 位
double640.0雙精度,尾數 15 位
字符char16'\u0000'Unicode,0~65535
布爾boolean1~8falsetrue/false

型別轉換

  • 自動(隱式):byte → short/char → int → long → float → double(容量由小到大)。
  • 強制(顯式):(targetType) value,可能損失精度/溢出。

轉義字符

\b 退格  \n 換行  \r 回車  \' 單引號  \" 雙引號  \\ 反斜槓

運算符優先級(高→低)

[] () .        // 最高
! ~ ++ -- + -  // 一元
* / %          // 算術
+ -            // 算術/字串連接
<< >> >>>      // 移位
< <= > >= instanceof
== !=          // 比較
&              // 位與
^              // 位異或
|              // 位或
&&             // 邏輯與(短路)
||             // 邏輯或(短路)
?:             // 三元
= += -= *= /= %= &= ^= |= <<= >>= >>>=  // 賦值(最低)

四、流程控制語句

分支

if (score >= 60) { pass(); }
else if (score >= 40) { makeup(); }
else { fail(); }

switch (month) {
    case 3: case 4: case 5: System.out.println("春"); break;
    case 6: case 7: case 8: System.out.println("夏"); break;
    default: System.out.println("其他季節");
}

迴圈

// for
for (int i = 1, sum = 0; i <= 100; i++) sum += i;

// while
int i = 1; while (i <= 100) { sum += i; i++; }

// do-while(至少執行一次)
do { sum += i; i++; } while (i <= 100);

// 增強 for(遍歷陣列/集合)
for (int n : arr) System.out.println(n);

五、方法與遞歸

方法聲明

[修飾符] 返回類型 方法名(參數列表) {
    // 方法體
    return 返回值; // void 可省略
}
  • 參數傳遞:基本型別傳值(副本)、引用型別傳引用(地址)。
  • 調用方式:靜態方法 ClassName.method();實例方法 obj.method()。

遞歸三要素

  1. 有終止條件(出口)。
  2. 每次遞歸規模縮小。
  3. 子問題與原問題同構。
int factorial(int n) {
    if (n <= 1) return 1; // 出口
    return n * factorial(n - 1);
}

六、面向對象基礎

三大特性

類與對象

  • 類是模板,對象是實例;ClassName obj = new ClassName();
  • 建構子:同類名、無返回類型、new 時自動調用;可重載。

JavaBean 規範

  1. public 類,public 無參建構子。
  2. 屬性 private,提供 getXxx()/setXxx()。
  3. 實作 Serializable(可選)。

七、UML 統一建模語言

類圖關係

特性核心含義關鍵字/機制
封裝隱藏內部細節,暴露公共介面private + getter/setter、package
繼承子類復用父類結構與行為extends、super、單繼承
多態同一操作作用不同對象產生不同行為Override(動態綁定)、Overload(靜態綁定)
關係箭頭含義代碼體現
泛化實線空心三角形 → 父類is-a(繼承)extends
實現虛線空心三角形 → 介面實作介面implements
關聯實線箭頭has-a(成員變數)欄位引用
聚合實線空心菱形 → 整體整體-部分,生命週期獨立集合/引用
組合實線實心菱形 → 整體整體-部分,生命週期綁定new 於建構子
依賴虛線箭頭use-a(局部變數/參數)方法參數/局部變數

九大圖

  • 用例圖、類圖、對象圖、循序圖、協作圖、狀態圖、活動圖、組件圖、部署圖。

八、數組操作

一維陣列

int[] arr = new int[5];        // 宣告並分配
int[] arr2 = {1, 2, 3, 4, 5};  // 靜態初始化
for (int i = 0; i < arr.length; i++) arr[i] = i * 2;
for (int n : arr) System.out.print(n + " ");

二維陣列

int[][] matrix = new int[3][4]; // 3 行 4 列
int[][] m2 = {{1,2}, {3,4}, {5,6}};
for (int[] row : matrix) for (int v : row) System.out.print(v + " ");

排序與工具

Arrays.sort(arr);              // 升序
Arrays.binarySearch(arr, 3);   // 查找(需有序)
Arrays.toString(arr);          // 格式化輸出
System.arraycopy(src, 0, dest, 0, 3); // 高效複製

九、Object 類核心方法

方法用途注意事項
toString()返回對象字串表示建議覆寫,預設 ClassName@hashCode
equals(Object)比較邏輯相等須滿足自反/對稱/傳遞/一致/非空;常配合 hashCode
hashCode()返回雜湊碼equals 相等則 hashCode 必相等;用於 HashMap/HashSet
getClass()獲取運行時 Class 物件反射入口,不可覆寫
clone()淺拷貝創建新對象需實作 Cloneable,否則拋 CloneNotSupportedException
finalize()GC 前調用已棄用(JDK9),不可靠,建議 try-with-resources

clone 範例

class Person implements Cloneable {
    int age;
    @Override protected Object clone() throws CloneNotSupportedException {
        return super.clone(); // 淺拷貝
    }
}
Person p1 = new Person(); p1.age = 20;
Person p2 = (Person) p1.clone(); // p2.age == 20,p1 != p2
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved