zoukankan      html  css  js  c++  java
  • 2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告

    一、实验内容及步骤

    1. 使用JDK编译、运行简单的Java程序
      • cd code进入code文件夹
      • mkdir 20175313创建20175313文件夹
      • ls查看当前目录
      • cd 20175313,mkdir exp1,cd exp1,用pwd查看当前工作路径
      • vim Hello.java编辑Hello.java
      • javac -d . Hello.java编译代码
      • java zlx.Hello运行代码

    实验截图如下:
    输入图片说明
    输入图片说明

    1. 使用IDEA调试Java程序
      • 设置断点
      • 单步运行
        • step into(快捷键F5)
        • step over(快捷键F6)
      • 两个断点之间的跳跃Resume(快捷键F8)
      • 设置条件断点

    实验截图如下:
    输入图片说明

    二、练习

    题目5:实现求正整数1-N之间所有质数的功能,并进行测试(正常情况,异常情况,边界情况)。

    代码为:

    import java.util.*;
    public class primeNumber2 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int flag=0;
            System.out.println("请输入一个数:");
            int number = scanner.nextInt();
            //while(scanner.hasNextInt()){
            System.out.println(number);
            if(number<0){
                System.out.println("负数没有素数与合数之分");
            }
            else if(number==1||number==0){
                System.out.println(number+"既不是素数也不是合数");
            }
            else {
                for(int j=2;j<number;j++){
                    flag=0;
                    for (int i = 2; i < j; i++) {
                        if (j % i == 0) {
                            flag = 1;
                            break;
                        }
                    }
                    if(flag==0){
                        System.out.println(number+"是素数");
                    }
                }
            }
        }
    }
    

    运行结果截图:
    输入图片说明

    三、实验过程的理解

    • javac -d . Hello.java-d参数的作用
      • 是指定生成java包的根目录,-d . 是在当前目录上编译生成java包。
      • 如果省略了-d,则仅仅是在当前目录生成的class文件。
    • JVM、JRE、JDK的安装位置与区别:
      • JVM:只认识*.class文件,能够将class文件中的字节码指令进行识别并调用操作 系统上的API完成动作。
      • JRE:JRE = JVM+Java类库
      • JDK:JDK = JRE+小工具

    四、实验过程中遇到的问题以及解决方案

    1. 带有package的编译运行问题及解决方案

      • 问题:在编辑*.java源文件中含有包名为zlx时,我首先在当前目录建立了一个名为zlx的文件夹,然后进入该文件夹,进行vim Hello.javajavac -d . Hello.javajava zlx.Hello,我cd一下发现,在zlx文件夹下又建了一个文件夹名为zlx。

      输入图片说明

      • 解决方案:通过各种途径了解到javac -d . Hello.java 中-d参数表达的意义,从而明白的出现该现象的原因。

      输入图片说明

      • 分析:javac -d . Hello.java -d参数的作用是指定生成java包的根目录,该程序中有zlx这个包,-d后会在当前目录下生成zlx这个包,因此,不需要我们自己去创建zlx这个文件夹然后再将源文件写入zlx目录下。
      • 启示:这使我联想到了教材中tom.jiafei的那个例子,它是在源程序中定义了package tom.jiafei这个包名,我当初的解决方法
        https://www.cnblogs.com/xiannvyeye/p/10544611.html)
        了解的-d的用法之后,我的解决方法是:

      输入图片说明

    2. 程序运行结果与预期不符问题及解决方案

      • 问题:运行结果本应该输出1-100的所有素数,但是却什么也没有输出。

      输入图片说明

      • 解决方案:通过IDEA调试查看问题出现在哪里。

      输入图片说明

      • 更改后运行结果截图:

      输入图片说明

    五、实验体会与总结

    • 一个程序是由很多模块构成的,也就是所谓的类,虽然我这个实验比较简单不需要多个类,但是很多内容是共通的,比如一个带包源文件的编译,在我们解决了一个问题之后,相应的一类的问题就都解决了。例如:编译带包源文件Hello.java就联想到了tom.jiafei那个例子的编译。

    • 当程序运行结果与自己意料中的不一样时,可以使用调试工具,IDEA可以很清楚的查看到每一步每一个变量的变化。

    • 像这类的实验我觉得如果能够通过结对来完成,应该能够达到较好的效果。就像我的System.out.println()放错了位置,如果是结对一起写的话,这个问题应该在当场就会被发现,这样就能节省调试的时间,提高效率。而且两个人结对还能够提高代码的质量,设计出一个更好的实现该功能的程序。

      步骤 耗时 百分比
      需求分析 10min 10%
      设计 10min 10%
      代码实现 45min 45%
      测试 25min 25%
      分析总结 10min 10%
  • 相关阅读:
    转 使用SwingBench 对Oracle RAC DB性能 压力测试 以及 MySQL基准测试工具--sysbench
    转 ORACLE约束总结
    转 使用隐含Trace参数诊断Oracle Data Pump故障
    转 OGG-01224 TCP/IP error 111 (Connection refused); retries exceeded.
    ora-1652
    js jquery 遍历 for,while,each,map,grep
    jQuery ajax读取本地json文件
    js jquery数组去重
    js 时间日期格式转换
    js取整数、取余数的方法
  • 原文地址:https://www.cnblogs.com/xiannvyeye/p/10569157.html
Copyright © 2011-2022 走看看