Skip to content

3.4 新手常见错误

Java 编程中的常见错误

作为 Java 新手,你可能会遇到各种错误。了解这些常见错误及其解决方案,可以帮助你更快地解决问题,提高编程效率。

1. 大小写错误

症状

  • 编译错误:error: cannot find symbol
  • 运行错误:error: could not find or load main class

原因

Java 是区分大小写的语言,以下情况需要注意大小写:

  • 类名和文件名必须完全一致(包括大小写)
  • 方法名和变量名的大小写必须正确
  • 关键字的大小写必须正确(如 publicstaticvoid 等)

示例

错误示例

java
public class helloworld {  // 错误:类名应为 HelloWorld
    public static void main(String[] args) {
        system.out.println("Hello, World!");  // 错误:应为 System.out.println
    }
}

正确示例

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

解决方案

  • 确保类名与文件名完全一致,包括大小写
  • 注意关键字的大小写(全部小写)
  • 注意标准库类和方法的大小写(如 Systemoutprintln
  • 使用 IDE 的自动补全功能,减少大小写错误

2. 分号缺失

症状

  • 编译错误:error: ';' expected

原因

Java 中的每个语句都必须以分号结尾,缺少分号会导致编译错误。

示例

错误示例

java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!")  // 错误:缺少分号
    }
}

正确示例

java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");  // 正确:有分号
    }
}

解决方案

  • 确保每个语句都以分号结尾
  • 注意分号是英文半角分号,不是中文全角分号
  • 使用 IDE 的语法检查功能,及时发现分号缺失问题

3. 文件名与类名不一致

症状

  • 编译错误:error: class HelloWorld is public, should be declared in a file named HelloWorld.java

原因

Java 要求公共类(public class)的文件名必须与类名完全一致,包括大小写。

示例

错误

  • 类名:HelloWorld
  • 文件名:helloWorld.javaHelloWorld.txt

正确

  • 类名:HelloWorld
  • 文件名:HelloWorld.java

解决方案

  • 确保文件名与公共类名完全一致,包括大小写
  • 如果文件中包含多个类,只有公共类需要与文件名一致
  • 非公共类可以与文件名不一致

4. 括号不匹配

症状

  • 编译错误:error: '}' expectederror: ')' expected

原因

Java 中的括号必须成对出现,包括:

  • 大括号 {}:用于类体、方法体和代码块
  • 中括号 []:用于数组
  • 小括号 ():用于方法参数和表达式

示例

错误示例

java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    // 错误:缺少大括号

正确示例

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

解决方案

  • 确保所有括号都成对出现
  • 使用 IDE 的自动缩进功能,帮助检查括号匹配情况
  • 编写代码时,先输入括号对,再在中间添加内容

5. 主方法定义错误

症状

  • 运行错误:error: main method not found in class HelloWorld

原因

主方法是 Java 程序的入口点,必须按照正确的格式定义。

正确的主方法定义

java
public static void main(String[] args) {
    // 方法体
}

常见错误

  • 缺少 public 修饰符
  • 缺少 static 修饰符
  • 缺少 void 返回类型
  • 方法名拼写错误(如 Main 而不是 main
  • 参数列表错误(如 String args 而不是 String[] args

解决方案

  • 确保主方法的定义完全正确:public static void main(String[] args)
  • 注意大小写:main 是小写的
  • 确保参数列表是 String[] args,包括方括号

6. 类型不匹配

症状

  • 编译错误:error: incompatible types

原因

Java 是强类型语言,变量的类型必须与赋值的类型匹配。

示例

错误示例

java
int number = "123";  // 错误:不能将字符串赋值给整数类型

正确示例

java
int number = 123;  // 正确:整数赋值给整数类型
String text = "123";  // 正确:字符串赋值给字符串类型

解决方案

  • 确保变量类型与赋值的类型匹配
  • 使用类型转换将一种类型转换为另一种类型
  • 注意自动类型转换和强制类型转换的规则

7. 未初始化变量

症状

  • 编译错误:error: variable x might not have been initialized

原因

Java 要求局部变量在使用前必须初始化。

示例

错误示例

java
public static void main(String[] args) {
    int number;  // 声明但未初始化
    System.out.println(number);  // 错误:使用未初始化的变量
}

正确示例

java
public static void main(String[] args) {
    int number = 0;  // 声明并初始化
    System.out.println(number);  // 正确:使用已初始化的变量
}

解决方案

  • 声明变量时同时初始化
  • 在使用变量前确保已经赋值
  • 类成员变量会自动初始化,局部变量不会

8. 访问修饰符错误

症状

  • 编译错误:error: illegal start of expression
  • 运行错误:error: cannot access class

原因

访问修饰符(public、private、protected)的使用不当。

示例

错误示例

java
private public class HelloWorld {  // 错误:多个访问修饰符
    // 类体
}

正确示例

java
public class HelloWorld {
    private int number;  // 私有属性
    public void method() {  // 公共方法
        // 方法体
    }
}

解决方案

  • 一个类只能有一个访问修饰符
  • 了解不同访问修饰符的作用域
  • 合理使用访问修饰符,保护类的封装性

总结

作为 Java 新手,遇到错误是正常的。通过了解这些常见错误及其解决方案,你可以更快地解决问题,提高编程效率。记住以下几点:

  • 注意大小写
  • 确保分号正确
  • 保持文件名与类名一致
  • 确保括号匹配
  • 正确定义主方法
  • 注意类型匹配
  • 初始化变量
  • 正确使用访问修饰符

随着经验的积累,你会逐渐减少这些错误的发生,成为一名更熟练的 Java 程序员。

© 2026 编程马·菜鸟教程 版权所有