1. 首页 > 快讯

Java初学者容易犯的错误

Java编程的初学者常常会遇到各种各样的问题。对于自学的读者来说,则是需要花费更多的时间、精力来解决这些问题,而且一旦遇到的问题几天都得不到解决,往往会带来很大的挫败感。

所以本节介绍一些初学者经常出现的错误,以便减少读者在学习中的障碍。

  • 大小写问题

之前我们已经提到,Java 是区分大小写的语言。但由于大部分读者都是 Windows 操作系统的忠实拥护者,因此对大小问题往往都不够重视(Linux 平台是区分大小写的)。
例如,有的读者编写的 Java 程序的类是 HelloJava,但当他运行 Java 程序时,运行的则是 java hellojava 这种形式,这种错误的形式没有严格按 Java 程序中编写的来写,可能引起系统提示如图 1 所示的错误。

因此这里必须提醒大家,在 Java 程序里,HelloJava 和 hellojava 是完全不同的,必须严格注意 Java 程序里的大小写问题。
不仅如此,读者按照教程中示例编写 Java 程序时,必须严格注意 Java 程序中每个单词的大小写,不要随意编写。例如 class 和 Class 是不同的两个词,class 是正确的,但是如果写成 Class,则程序无法编译通过。
实际上,Java 程序中的关键字全部是小写的,无需大写任何字母。

  • 路径里包含空格的问题

这是一个更容易引起错误的问题。由于 Windows 系统的很多路径都包含了空格,典型的例如 Program Files 文件夹,而且这个文件夹是 JDK 的默认安装路径。
如果 CLASSPATH 环境变量里包含的路径中存在空格,则可能引发错误。因此,推荐大家安装 JDK 以及 Java 相关程序、工具时,不要安装在包含空格的路径下,否则可能引发错误。

  • main 方法的问题

如果需要用 java 命令直接运行一个 Java 类,这个 Java 类必须包含 main 方法,这个 main 方法必须使用 public 和 static 来修饰,必须使用 void 声明该方法的返回值,而且该方法的参数类型只能是一个字符串数组,而不能是其他形式的参数。对于这个 main 方法而言,前面的 public 和 static 修饰符的位置可以互换,但其他部分则是固定的。
定义 main 方法时,不要写成 Main 方法,如果不小心把方法名的首字母写成了大写,编译时不会出现任何问题,但运行该程序时将给出如图 2 的错误提示:

这个错误提示找不到 main 方法,因为 Java 虚拟机只会选择从 main 方法开始执行。对于 Main 方法,Java 虚拟机会把该方法当成一个普通方法,而不是程序的入口。
main 方法里可以放置程序员需要执行的可执行性语句,例如 System.out.println("Hello Java!"),这行语句是 Java 里的输出语句,用于向控制台输岀“Hello Java!”这个字符串内容,输出结束后还输出一个换行符。
在 Java 程序里执行输岀有两种简单的方式:System.out.print(需要输出的内容) 和 System.out.println (需要输出的内容),其中前者在输出结束后不会换行,而后者在输出结束后会换行。

  1. 变量命名与类型

变量命名:

  • 规则:变量名应以字母、下划线_、美元符号$开头,后跟字母、数字、下划线或美元符号。不能使用Java关键字作为变量名。推荐使用驼峰命名法(camelCase)。

  • 实例:正确的变量名如userName、age;错误的变量名如1stName(以数字开头)、class(Java关键字)。

类型选择:

  • 基本类型:包括int、float、double、char等。

  • 实例:错误示例:int score = 92.5;// 这将导致编译错误,因为int不能存储小数。

    • int age = 25;// 整数类型

    • float height = 5.9f;// 浮点数类型,注意f或F后缀

    • double weight = 65.5;// 双精度浮点数类型

2. 控制流语句

条件语句:

  • if-else:根据条件执行不同的代码块。

  • 实例:

    		

    java复制代码

    intscore=85;
    if(score >=60) {
    System.out.println("及格");
    }else{
    System.out.println("不及格");
    }

循环语句:

  • for:常用于已知循环次数的场景。

  • 实例:

    		

    java复制代码

    for(inti=0; i <5; i++) {
    System.out.println("i的值是:"+ i);
    }

3. 数组与集合

数组:

  • 定义与初始化:可以静态初始化或动态初始化。

  • 实例:

    		

    java复制代码

    int[] numbers = {1,2,3,4,5};// 静态初始化
    int[] anotherNumbers =newint[5];// 动态初始化,但未赋值
    for(inti=0; i < anotherNumbers.length; i++) {
    anotherNumbers[i] = i *2;
    }

    注意:数组索引越界异常(ArrayIndexOutOfBoundsException),如System.out.println(numbers[5]);// 数组索引从0开始,最大为4。

集合:

  • List:动态数组,允许重复元素。

  • 实例:

    		

    java复制代码

    importjava.util.ArrayList;
    importjava.util.List;
    List<String> fruits =newArrayList<>();
    fruits.add("Apple");
    fruits.add("Banana");
    System.out.println(fruits);// 输出:[Apple, Banana]

4. 异常处理

try-catch:

  • 基本结构:将可能抛出异常的代码放在try块中,用catch块捕获并处理异常。

  • 实例:

    		

    java复制代码

    try{
    intresult=10/0;// 尝试除以0,将抛出ArithmeticException
    }catch(ArithmeticException e) {
    System.out.println("除数不能为0");
    }

自定义异常:

  • 实例:

    		

    java复制代码

    classMyExceptionextendsException{
    publicMyException(String message){
    super(message);
    }
    }
    publicvoidtestException()throwsMyException {
    thrownewMyException("这是一个自定义异常");
    }

5. 类与对象

类的定义:

  • 基本结构:包含成员变量(属性)和方法。

  • 实例:

    		

    java复制代码

    publicclassPerson{
    String name;
    intage;
    publicvoidintroduce(){
    System.out.println("我叫"+ name +",今年"+ age +"岁。");
    }
    }

对象的创建与使用:

  • 实例:

    		

    java复制代码

    Personperson=newPerson();
    person.name ="张三";
    person.age =30;
    person.introduce();//

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/3612.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666