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

Java 進階基礎實戰:MyEclipse、Debug、JUnit、JDK5 新特性與反射完整指南

     編輯:Java 綜合教學

開發環境建置與基礎操作

MyEclipse 安裝與專案建立

MyEclipse 是 Eclipse 的商業增強插件。安裝路徑與工作空間均不可包含中文或空格。破解通常需先配置 JDK 環境變數,再執行 run.bat。建立專案時可選 Java Project 或 Web Project,並指定 JDK 版本(可用內建或外部安裝)。

命名規範與代碼風格

  • 類名:PascalCase(如 UserManager)
  • 方法/變數:camelCase(如 addNum()、userName)
  • 避免中英混合(如 userMing),核心原則:見名知意。
  • 保持縮進,使用 Run As > Java Application 執行。

Debug 斷點調試技巧

  • 設定斷點:編輯器左側雙擊顯示圓點。
  • 啟動:Debug As > Java Application,切換至 Debug 視圖。
  • 關鍵快捷鍵:
    • F6 (Step Over):單步執行,不進入方法內部。
    • F5 (Step Into):進入方法內部(可查看 JDK 源碼)。
    • F7 (Step Return):從當前方法返回。
    • F8 (Resume):恢復執行至下一斷點或結束。

MyEclipse 常用快捷鍵

功能快捷鍵
代碼提示Alt + /
快速導入包Ctrl + Shift + O
單行註釋/取消Ctrl + /
多行註釋Ctrl + Shift + /
刪除當前行Ctrl + D

JUnit 4 單元測試實戰

MyEclipse 內建 JUnit Jar。核心註解:

  • @Test:標記測試方法(public void 無參)。
  • @Before / @After:每個測試方法前/後執行。
  • @Ignore:跳過該測試。
  • 斷言:Assert.assertEquals(expected, actual)。

執行:方法/類右鍵 Run As > JUnit Test。綠條代表通過,紅條失敗。

JDK 5 核心新特性深度解析

泛型

解決集合元素「擦除」為 Object 導致的類型轉換風險。語法:List<String>。泛型參數只能是引用類型(基本類型用包裝類)。支援在類、介面、方法上定義。

// 泛型方法
public static <T> void swap(T[] arr, int i, int j) {
    T tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
}

泛型擦除:僅存在於源碼階段,編譯後移除。

枚舉

enum Color { RED, GREEN, YELLOW; }

本質是 Enum 子類,構造器私有。支援帶參數構造器、抽象方法與實例級實現。常用 API:name()、ordinal()、values()、valueOf()。

靜態導入

import static java.lang.System.out;
import static java.util.Arrays.sort;

可直接使用靜態成員(如 out.println()),提升可讀性。

自動拆裝箱

  • 裝箱:Integer i = 10;(編譯器轉為 Integer.valueOf(10))。
  • 拆箱:int n = i;(轉為 i.intValue())。
  • 兼容性:JDK 1.4 手動 new Integer(10) / .intValue() 的代碼在 5.0 仍可運行,重載解析遵循向下兼容原則。

增強 for 循環

for (String s : list) { ... } // 適用於陣列及實現 Iterable 的集合

底層仍是迭代器,Map 需轉 entrySet() 或 keySet() 才能使用。

可變參數

public static void add(int... nums) { // 視為 int[] 處理
    for (int n : nums) sum += n;
}

限制:只能有一個,必須位於參數列表最後。

反射機制核心原理與實戰

核心原理

  1. 源碼 .java → 編譯 .class → 類加載器載入記憶體。
  2. 記憶體中的類由 java.lang.Class 物件表示(萬物皆物件)。
  3. 透過 Class 物件獲取結構:Field(屬性)、Constructor(構造器)、Method(方法)。

框架開發核心:配置文件指定類名 → 反射載入 → 實例化/調用方法。

三種獲取 Class 物件的方式

Class c1 = Person.class;
Class c2 = new Person().getClass();
Class c3 = Class.forName("cn.itcast.test09.Person"); // 最常用,支援動態配置

操作構造器

// 無參
Person p = (Person) c3.newInstance();
// 有參
Constructor cs = c1.getConstructor(String.class, String.class);
Person p1 = (Person) cs.newInstance("lisi", "100");

操作屬性(含私有)

Field f = c2.getDeclaredField("name");
f.setAccessible(true); // 破解私有封裝
f.set(p11, "wangwu");  // 相當於 p11.name = "wangwu"
System.out.println(f.get(p11));

操作方法(含靜態/私有)

Method m = c4.getDeclaredMethod("setName", String.class);
m.invoke(p4, "niuqi"); // 實例方法傳實例
// 靜態方法第一個參數傳 null
m.invoke(null, "arg");
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved