2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告
一、实验内容及步骤
- 使用JDK编译、运行简单的Java程序
cd code进入code文件夹mkdir 20175313创建20175313文件夹ls查看当前目录cd 20175313,mkdir exp1,cd exp1,用pwd查看当前工作路径vim Hello.java编辑Hello.javajavac -d . Hello.java编译代码java zlx.Hello运行代码
实验截图如下:
- 使用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文件。
- 是指定生成java包的根目录,
- JVM、JRE、JDK的安装位置与区别:
- JVM:只认识*.class文件,能够将class文件中的字节码指令进行识别并调用操作 系统上的API完成动作。
- JRE:JRE = JVM+Java类库
- JDK:JDK = JRE+小工具
四、实验过程中遇到的问题以及解决方案
带有package的编译运行问题及解决方案
- 问题:在编辑*.java源文件中含有包名为zlx时,我首先在当前目录建立了一个名为zlx的文件夹,然后进入该文件夹,进行
vim Hello.java,javac -d . Hello.java,java 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的用法之后,我的解决方法是:

- 问题:在编辑*.java源文件中含有包名为zlx时,我首先在当前目录建立了一个名为zlx的文件夹,然后进入该文件夹,进行
程序运行结果与预期不符问题及解决方案
- 问题:运行结果本应该输出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开发环境的熟悉》实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20175316 盛茂淞 实验一 Java开发环境的熟悉
20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...
- 20155327实验一 Java开发环境的熟悉
20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...
- 20165233 实验一 Java开发环境的熟悉
20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...
- 20155231 java实验一 Java开发环境的熟悉
20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- Windows下安装模块mysqlclient报错处理
Windows环境下使用pip命令安装Python模块mysqlclientpip install mysqlclient安装过程报错 [error] Microsoft Visual C++ 14 ...
- 文档大师 在Win10 IE11下,文档集画面无法正常显示Word等Office文档的解决方法
在文档集界面中显示Word文档,是文档大师的一个核心功能. 最近在 Win10 升级到最新版后,发现 无法正常显示Office 文档的问题. 一开始以为是Word版本问题,从2007升级到2016,问 ...
- 解决Protobuf生成的C#代码命名不规范问题
起因 通常使用Protobuf的步骤为 定义 .proto 文件 使用 protoc 生成对应语言的代码 以生成C#代码为例,使用如下命令: protoc -I ../protos --csharp_ ...
- Sublime Text 文件路径补全
最有效和好用的是AutoFileName插件,效果如下: 表格编辑 Table Editor相当好用,安装好后参考自述文件(Preferences --> Package Settings -- ...
- Linux文件属性有哪些?(共十位)
-rw-r--r-- 那个是权限符号,总共是 - --- --- --- 这几个位. 第一个短横处是文件类型识别符: - 表示普通文件: c 表示字符设备(character): b 表示块设备(bl ...
- C语言 · 积分之迷
标题:积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C. 为了促销,每件商品都会返固定的积分. 小明开业第一天收到了三笔订单: 第一笔:3个A + 7个B + 1个C,共返积分:315 ...
- mysql事务隔离级别及传播机制
TRANSACTION(事务隔离级别) 在说明事务隔离级别之前先说一下脏读.不可重复读.幻读这三个概念. 脏读:一个事务读取到另一事务未提交的更新新据.当一个事务正在访问数据,并且对数据进行了修改,而 ...
- rabbitmq 生产者 消费者(多个线程消费同一个队列里面的任务。) 一个通用rabbitmq消费确认,快速并发运行的框架。
rabbitmq作为消息队列可以有消息消费确认机制,之前写个基于redis的通用生产者 消费者 并发框架,redis的list结构可以简单充当消息队列,但不具备消费确认机制,随意关停程序,会丢失一部分 ...
- [hadoop] kettle spoon 基础使用 (txt 内容抽取到excel中)
spoon.bat 启动kettle. 测试数据 1. 新建转换 输入中选择文本文件输入 双击设置文本输入 字符集.分隔符设置 获取对应的字段,预览记录. 拖入 excel输出,设置转换关系 设置输出 ...
- go关键字之select
select是Go中的一个控制结构,类似于switch语句,用于处理异步IO操作.select会监听case语句中channel的读写操作,当case中channel读写操作为非阻塞状态(即能读写)时 ...



