20165228 实验一 Java开发环境的熟悉

20165228 实验一 Java开发环境的熟悉

1、实验内容及步骤

(一)使用JDK编译、运行简单的Java程序

  • 命令行下Java程序开发
    1.用VrtualBox打开Linux虚拟机

    2.使用Alt+Ctrl+T来打开命令行

    3.使用mkdir java建立一个名为java的目录,使用cd java进入该目录

    4.使用mkdir 20165228建立名为学号的目录,使用cd 20165228进入该目录

    5.在目录20165228下建立第一个实验目录,并进入该目录

    6.建立相应的bin和src文件夹来对.java和.class进行分类

    7.使用vim Hello.java来编辑该程序,编辑完成后,使用mv Hello.java src,将编辑好的程序移动到事先建立的src文件夹下


    8.使用javac -d bin src/Hello.java编译程序,并将获得的class文件输出到bin目录下。而后使用java -cp bin szk.Hello运行带包的程序
    java

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

    1.进入IDEA建立项目后,右键src-->New-->Java class

    2.输入HelloJDB,选择OK

    3.输入代码并点击run(快捷键Alt+Shift+F10

    4.在第6行设置断点后,进行Debug(快捷键Alt+Shift+F9),程序会运行到第6行时截止,能够观察到此时的各个变量值的状况


    5.此时能够进行Step into(快捷键F7)和Step over(快捷键F8)继续单步执行
  • 如下是其区别
    step into(快捷键F7):单步执行,遇到子函数就进入而且继续单步执行
    step over(快捷键F8):是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再中止,也就是把子函数整个做为一步
    step out(Shift+F8):当单步执行到子函数内时,用step out就能够执行完子函数余下部分,并返回到上一层函数。

    6.在第9行再设置一个断点,使用Resume Program(快捷键F9)来跳过已确认没有问题的代码段

    7.设置条件断点,而后运行,获得在该条件下的结果

    vim

    (三)练习:实现简单四则运算(能支持分数,加减乘除,支持括号),并进行测试(正常状况,异常状况,边界状况)

    代码以下:
import java.util.Scanner;
import java.math.BigDecimal;
public class Calculator {
    public static void main(String[] args) {
        String name1="+";
        String name2="-";
        String name3="*";
        String name4="/";
        Scanner scanner=new Scanner(System.in);
        System.out.printf("选择四则运算:");
        String str=new String(scanner.nextLine());
        if(name1.equals(str)){
            System.out.printf("请输入须要运算的两个数字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"+"+b +"结果是%f\n",a.add(b));
        }
        else if(name2.equals(str)){
            System.out.printf("请输入须要运算的两个数字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"-"+b +"结果是%f\n",a.subtract(b));
        }
        else if(name3.equals(str)){
            System.out.printf("请输入须要运算的两个数字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"*"+b +"结果是%f\n",a.multiply(b));
        }
        else if(name4.equals(str)){
            System.out.printf("请输入须要运算的两个数字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"/"+b +"结果是%f\n",a.divide(b));
        }
        else System.out.printf("输入错误");
    }
}
  • 命令行调试

正常状况:
tomcat

异常状况:
ide

  • IDEA调试
    正常状况:

异常状况:
函数

2、实验中遇到的问题

  • 问题1:在设计完代码后, 调试时提示“java.lang.ClassNotFoundException: Calculator”
    解决方法:
    1.确认你的类库在系统的CLASSPATH下面,若是是Tomcat,则能够放在tomcat/lib/目录下面。
    2 删除重复的类库,只保留最新的
  • 问题2:用IDEA调试代码时,会提示找不到主类,让我很疑惑。由于命令行调试时彻底正常
    解决方法:
    IDEA环境的问题,在项目的project structure 中,先将项目指定JDK ,而后在项目的PATH 中,将path修改成跟当前项目在一个路径下测试

    3、实验体会与总结

  • 前面的实验部分,巩固了前几周娄老师在课上强调的在目录下编译和运行子目录下的程序以及带包程序的运行知识。
  • 对于后面的练习,带括号的运算对我如今的水平来讲是不容易理解的,因此我只写了一个普通的四则运算程序。
  • 因为未能想到四则运算的边界,因此我也没有测试其边界值。idea

相关文章
相关标签/搜索