一、实验内容及步骤

  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%

2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告的更多相关文章

  1. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  3. 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

  4. 20165205 实验一 java开发环境的熟悉 实验报告

    20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  5. 20162327实验一Java开发环境的熟悉实验报告

    20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  8. 20155327实验一 Java开发环境的熟悉

    20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

  9. 20165233 实验一 Java开发环境的熟悉

    20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

  10. 20155231 java实验一 Java开发环境的熟悉

    20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

随机推荐

  1. Web API中如何获取相对地址的绝对地址 Server.MapPath

    var sPath = System.Web.Hosting.HostingEnvironment.MapPath("/FilePath/");

  2. python的类和对象(类的静态字段)

    转自:http://www.cnblogs.com/Eva-J/p/5044411.html 什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是 ...

  3. DTD约束简介

    DTD约束简介 文档类型声明 文档类型声明就是DOCTYPE,它告诉解析器,XML文档必须遵循DTD定义.同时,他也告诉解析器,到哪里找到文档定义的其余内容.在前边的例子里DOCTYPE很简单: &l ...

  4. HTTP 04 web 服务器

    用单台虚拟主机实现多个域名 HTTP/1.1 允许一台 HTTP 服务器搭建多个 web 站点, 例如提供 web 托管服务的供应商, 可以用一台服务器为多位客户服务, 也可以以每位客户持有的域名运行 ...

  5. 【ORACLE】SQL查询出每个组中的第一条记录

    CREATE TABLE [TestTable] ( ) NOT NULL , ) NOT NULL , ) ))) GO ALTER TABLE [TestTable] ADD PRIMARY KE ...

  6. Easy UI combogrid动态加载数据

    场景: datagrid的每一行允许编辑,一行中有一个字段,编辑时,提供下拉框选项,供选择. 下拉框选项有多个列.如下图所示:(点击红框内的下拉按钮,会弹出绿框内的内容) 要求: 每行弹出的下拉框内容 ...

  7. appium定位h5

    1.手机安装Chrome浏览器 2.开启USB调试模式,并使用安装的Chrome浏览器打开待测H5页面 3.在电脑端的Chrome浏览器输入chrome://inspect               ...

  8. [原]CentOS 7 chrony 笔记

    ~]# timedatectl status Local -- :: CST ==> 本地系统实际时间,设置时间timedatectl set-:: 设置日期timedatectl set- 设 ...

  9. 禅道迁移(windows_to_linux)

    需求分析 随着禅道数据的增加,原来通过虚拟机提供的mysql服务器相应速度跟不上需求.且原来禅道的前端与数据库分离安装在windows与linux中,现在提供实体服务器,需要将禅道环境迁移. 确认环境 ...

  10. linux 安装配置nexus以及maven私服应用

    ---------------------nexus---------------------- 1.编辑nexus脚本, 配置 RUN_AS_USER 参数vi /usr/local/src/nex ...