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

Java 入門筆記:從環境搭建到第一個 HelloWorld 的避坑全記錄

     編輯:Java 相關知識

作為零基礎轉型 Java 開發者,記錄從 JDK 安裝配置到運行第一個程序的完整踩坑過程,為同階段學習者提供可直接執行的操作清單。

JDK 安裝與環境變量配置 (Windows)

1. 安裝路徑建議

安裝至根目錄無空格路徑,如 C:\jdk1.8.0_301 (現代版本) 或文中 C:\jdk (JDK 1.4 時代)。

2. 環境變量設置 (核心三步)

系統操作路徑關鍵變量
Win 98/MeC:\autoexec.batset PATH=%PATH%;C:\jdk\bin
set CLASSPATH=.;C:\jdk\lib\dt.jar;C:\jdk\lib\tools.jar
Win 2000/XP/7/10/11控制面板 → 系統 → 高級 → 環境變量 → 系統變量新建 JAVA_HOME = C:\jdk
編輯 Path 追加 %JAVA_HOME%\bin
新建 CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

現代最佳實踐 (JDK 9+): 僅設置 JAVA_HOME 和 Path,刪除 CLASSPATH 系統變量,避免類加載衝突,Maven/Gradle/IDE 會自動管理依賴。

3. 驗證安裝

C:\> java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)

C:\> javac -version
javac 1.8.0_301

第一個程序:HelloWorld 完整流程

1. 源碼文件 HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

鐵律: 文件名 必須與類名完全一致 (大小写敏感),即 HelloWorld.java。

2. 編譯與運行

C:\workspace> javac HelloWorld.java
C:\workspace> java HelloWorld
Hello, World!

常見報錯 NoClassDefFoundError 原因:未配置 CLASSPATH 或運行時未包含當前目錄 .。

Java 基礎語法速查筆記

字符串處理

// 直接賦值 (字符串常量池)
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2);  // true (同一對象)

// new 創建 (堆內存)
String s3 = new String("Hello");
System.out.println(s1 == s3);  // false
System.out.println(s1.equals(s3));  // true (內容比較)

數組聲明與初始化

// 推薦風格:類型[] 變量名
int[] numbers = new int[5];           // 默認值 0
String[] messages = new String[5];    // 默認值 null
int[] scores = {90, 85, 78, 92, 88};  // 靜態初始化

// 遍歷
for (int score : scores) {
    System.out.println(score);
}

類結構與 main 方法

public class MyProgram {
    // 入口方法:固定簽名
    public static void main(String[] args) {
        // 程序主體
        System.out.println("Start...");
    }

    // 實例方法
    public int add(int a, int b) {
        return a + b;
    }

    // 靜態方法 (工具類常用)
    public static int multiply(int a, int b) {
        return a * b;
    }
}

static 關鍵字深度理解

核心概念

  • 屬於類,不屬於實例:所有對象共享同一份內存
  • 生命周期:類加載時分配,JVM 卸載類時釋放
  • 調用方式:ClassName.staticField / ClassName.staticMethod() (推薦),也可對象調用 (不推薦)

經典場景:全局計數器

public class Counter {
    private static int count = 0;  // 類變量

    public Counter() {
        count++;
        System.out.println("第 " + count + " 個實例被創建");
    }

    public static int getCount() {
        return count;
    }
}

// 測試
new Counter();  // 第 1 個實例被創建
new Counter();  // 第 2 個實例被創建
System.out.println(Counter.getCount());  // 2

編譯錯誤:非靜態上下文引用

public class Test {
    int instanceVar = 10;

    public static void main(String[] args) {
        // System.out.println(instanceVar);  // 編譯錯誤!
        // 原因:main 為 static,無 this 引用,不知訪問哪個對象的 instanceVar
    }
}

解決:將變量改為 static,或在 main 中創建對象後訪問 new Test().instanceVar。

學習心法與資源推薦

  • 動手為王:每個語法點必須敲代碼驗證,不要只看書
  • 善用 IDE:IntelliJ IDEA Community / Eclipse 智能提示、重構、調試大幅提效
  • 經典教材:《Java 核心技術 卷I》、《Effective Java》(進階)、《Head First Java》(入門)
  • 官方文檔:Oracle Java Tutorials (docs.oracle.com/javase/tutorial/) 權威免費
  • 錯誤即財富:每個紅色堆疊跟蹤都是理解 JVM 運行機會的契機

Java 學習曲線前陡後平,環境配置是第一道攔路虎,跨過它,廣闊的對象世界向你敞開。

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