实验一 Java开发环境的熟悉(Linux + IDEA)

(一)命令行下Java程序开发

实验步骤:

  • 1 首先双击实验楼桌面上的Xface终端图标
  • 2 打开终端(类似Windows下的cmd),之后会自动运行shell程序
  • 3 输入cd Code命令进入Code(注意C要大写)目录
  • 4 输入mkdir 20169202 命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况。
  • 5 输入cd 20169202命令进入实验目录,再输入类似mkdir exp建立第一个实验目录,然后输入cd exp进入实验一目录,可以输入pwd命令查看当前工作路径,
  • 6 输入gedit Hello.java(注意把代码保存到exp目录中)或vim Hello.java(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:
    1 package ljp;
    2 import java.util.Scanner;
    3 public class Hello{
    4   public static void main(String[] args){
    5       System.out.println("Input your first name, please:");
    6       Scanner s = new Scanner(System.in);
    7       String name = s.next();
    8       System.out.println("Hello " + name + " !");
    9    }
    10 }
  • 7 输入javac -d . Hello.java命令编译代码,输入java ljp.Hello命令运行
    程序。结果如下图所示:

(二)Eclipse下Java程序开发、调试

  • 1 用鼠标在「src」上点击右键,选择「New」->「Java Class」新建Java类
  • 2 输入类名HelloWorld
  • 3 在代码编辑窗口中输入psvm,然后按tab,IDEA会帮我们生成main方法
  • 4 输入如下代码(在代码编辑窗口中输入「sout」,然后按「tab」,IDEA会帮我们生成System.out.println())
    1 package ljp;
    2 public class HelloJDB {
    3   public static void main(String[] args) {
    4       int i = 5;
    5       int j = 6;
    6       int sum = add(i, j);
    7       System.out.println(sum);
    8           
    9       sum = 0;
    10      for(i=0; i< 100; i++)
    11          sum += i;
    12          
    13      System.out.println(sum);
    14  }
    15      
    16  public static int add(int augend, int addend){
    17      int sum = augend + addend;
    18      return sum;
    19  }
    20}
  • 5 通过「Run」->「Run...」来编译,运行程序,建议大家触通过实践掌握快捷键「Alt+Shift+F10」

  • 6选中要运行的类「Hello World」

  • 7 调试程序首先要会设置断点和单步运行。设置断点比较简单,在要设置断点的行号旁用鼠标单击一下就行了(或使用Ctrl+F8快捷键),如下图所示,我们在第5行设了个断点

  • 8 然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序,我们可以看到程序停留在了第5行

注意,此时第5行代码并没有执行,我们看到变量sum的值并不是11,我们通过单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8),这两种单步运行功能在运行语句时没有区别,在执行方法调用语句时,Step Into会跳入方法实现,Step Over会直接执行完方法,实际使用中我们优先使用Step Over,只有方法执行出错了,说明程序问题在被调用方法中,这时再回来通过Step Into进入方法进行调试。我们单击一下Step Over图标(或F8),程序停在了第5行,这时查看变量i的值,会看到sum等于11。

  • 9 单步执行效率比较慢,如果我们感觉到第5行到第8行的代码没有问题了,想让程序直接运行到第9行,怎么办?首先我们要在第9行设置断点,然后单击Resume图标(快捷键F9),程序就运行到了第11行
  • 10 单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。设置条件断点,我们在第9行左边断点处单击鼠标右键,弹出断点属性框,我们设置条件“i==50”.
    按一下F9,我们可以查看i的是50了

  • 11 临时断点,断点只中断一次,比如我们想把第9,10行的for循环一下子运行完,我们就需要在第12行设个条件断点。我们可以在第十二行设个断点,然后鼠标右击断点;然后点「More」或按快捷键Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」
    也可以把光标移到第12行,两次按快捷键Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」;最简单的方法是把光标移到第12行,使用菜单「Run」->「Toggle Temporary Line Breakpoint」或使用快捷键Ctrl+Alt+Shift+F8;断点上面有个1,运行一次就消失了

解决问题的方法也可以不使用临时断点,把光标移到第12行,使用菜单「Run」->「Run to Cursor」或使用快捷键Alt+F9

  • 12 方法断点:有时候我们怀疑某个方法出错了,就可以设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」.

(三)实现Fibonacci数列功能,并进行测试。

命令行实现

IDEA实现