2018-2019-2 20175320实验一《Java开发环境的熟悉》实验报告
2018-2019-2 20175320实验一《Java开发环境的熟悉》实验报告
一、实验步骤及内容
(一)带包程序的编译运行
1、使用mkdir命令创建如图所示目录
2、进入exp1下的src目录,在src目录中创建创建Hello.java的文件,并在文件内编写带包的程序。
3、编辑完成后使用cd ..命令返回exp1文件夹。
4、使用命令javac -d ./bin ./src/HelloJDB.java编译程序,命令java -cp ./bin gsj.HelloJDB运行程序。
5、在命令行中输入学号与姓名后回车即可得到运行结果

(二)IDEA下Java程序的开发与调试
1、按步骤安装好IDEA,并在界面中配置好JDK路径。
2、创建新项目并命名为HelloJDB,HelloJDB项目的src文件中建立新的类HelloJDB,在类中编写老师提供的如下代码:
1 public class HelloJDB {
2 public static void main(String[] args) {
3 int i = 5;
4 int j = 6;
5 int sum = add(i, j);
6 System.out.println(sum);
7
8 sum = 0;
9 for(i=0; i< 100; i++)
10 sum += i;
11
12 System.out.println(sum);
13 }
14
15 public static int add(int augend, int addend){
16 int sum = augend + addend;
17 return sum;
18 }
19}
3、在需要设置断点的行号后单击左键即可设置断点,在本次实验中我在第9行设置了断点。

4、单击菜单「Run」->「Debug...」,调试时程序停在第9行。

5、将断点改为条件断点,在断点处用鼠标右键单击,在弹出的属性框中设置i==50,按一下F9重新运行,之后可以在下面的窗口中看到i以及其他变量的值。


6、将断点改为临时断点,在断点处用鼠标右键单击,在弹出的属性框中选择「More」,在之后的窗口中选中「Remove Once hit」。


7、将断点改为方法断点,将光标移至怀疑出错的方法中的任意一行,使用菜单「Run」->「Toggle Method Breakpoint」即可。

8、可通过Step Into和Step Over图标进行单步运行,使用Resume图标重新调试
(三)练习实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)。
在本次实验中我采用了递归的技巧,将递归写进Function类的fib方法中,这样在主类Fibonacci中就可以定义一个Function类的对象object,使用for循环并通过对象调用fib方法从而将第n个斐波那契数的值放入数组的第n个空间中,最后再使用for循环输出长度为n的斐波那契数列的每一个值。
实验代码如下:
import java.util.Scanner; //引入类库中的类
class Function { //Function类用于实现计算第m个斐波那契数的值
public int fib(int m) { //fib方法采用了递归的编程技巧
if (m == 1 || m == 2) { //当m=1或m=2时返回数值1
return 1;
} else {
return fib(m - 1) + fib(m - 2); //其他情况下返回方法的递归调用
}
}
}
public class Fibonacci{
public static void main(String[] args) {
Function object; //声明一个Function类的对象object
int m,i,fibonacci[];
object = new Function();
Scanner scanner = new Scanner(System.in);
System.out.println("输入斐波那契数的个数:\n");
m=scanner.nextInt(); //输入斐波那契数列的个数
while(m<=0){ //当输入不合法时重新输入,直到输入正确才退出循环
System.out.println("error,input again.\n");
m=scanner.nextInt();
if(m>0){
break;
}
}
fibonacci = new int[m]; //给数组分配内存空间
for(i=0;i<m;i++){
fibonacci[i]=object.fib(i+1); //将第n个斐波那契数放入数组的第n个空间中
}
for(i=0;i<m;i++){
System.out.printf("第%d个数是 %d\n",i+1,fibonacci[i]); //输出斐波那契数列
}
}
}
运行结果如图:

二、实验时遇到的问题:
- 问题1:在exp1目录中编译运行带包程序时出错
- 问题1解决方法:原本在运行带包程序时我都是按书上的步骤进入包的上一级目录进行编译运行,这次更换目录后编译运行就显示找不到主类,但经过不断尝试后,发现可以使用
javac -d <目标文件夹> <字节码文件路径>来进行编译,使用java -cp <包所在文件夹> 包名.主类名来进行运行。 - 问题2:IDEA中断点右击无反应
- 问题2解决方法:我在安装IDEA后添加了中文包,删除之后重新打开IDEA即可正常右击断点。
- 问题3:斐波那契数列的程序在JDB中进行调试时需要输入数据,但此时键盘输入被JDB占用导致无法正常输入数据。
- 问题3解决方法:上网查找资料后发现可以使用远程控制终端来进行调试,相关方法我已写入博客 解决键盘输入被JDB占用的问题。
三、实验感想
我在本次实验中编译运行了包中的文件,学习了如何在IDEA中设置断点,调试程序,最后动手编写了一个输出斐波那契数列的程序,前两个实验巩固了学习Java编程基础,最后一个实验让我对输入,数组以及递归语句有了更深的理解。这次的实验看似简单,我在实际操作中还是出现了问题,这暴露出我在平时学习中对代码理解不够透彻,基础不够扎实等问题。Java的学习离不开上手练习,只有实际操作才会发现平时自己注意不到的问题。
附上PSP时间:
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 15 | 13% |
| 设计 | 15 | 13% |
| 代码实现 | 45 | 39% |
| 测试 | 25 | 22% |
| 分析总结 | 15 | 13% |
参考资料
2018-2019-2 20175320实验一《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编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- [jvm][面试]JVM 调优总结
https://blog.csdn.net/wfh6732/article/details/57422967 堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-b ...
- 【PHP】PHP 7.4 新特性
PHP 7.4 预计在 2019 年年末就会正式发布了,本文先来看看一下 PHP 7.4 的新特性. 1.预加载 预加载的实现理论上是可以为 PHP 带来很大的性能提升的.比如说:现在传统的 PHP ...
- 关于inodes占用100%解决方法
df -i; 发现inode节点占满: 这个时候如果不知道哪儿节点占用多可以用下边的脚本进行检查,查看到底哪个目录下面的文件最多: for i in /*; do echo $i; find $i | ...
- simHash 简介以及 java 实现
传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法.产生的两个签名,如果相等,说明原始内容在一定概 率 下是相等的:如果不相等,除了说明原始内容不相等外 ...
- Linux下逻辑地址、线性地址、物理地址详细总结
Linux下逻辑地址.线性地址.物理地址详细总结 一.逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址 ...
- Window 包管理工具: chocolatey
传送门 # 官网 https://chocolatey.org/install # 发生错误看看这个https://yevon-cn.github.io/2017/03/12/install-choc ...
- James 如何作为服务在后台启动
james 启动后是在前台运行的,就像你跑一个微服务,前台运行显然不合理,关闭ssh后就会断开,所以我们得配置在后台,使用service配置即可 配置 james/bin 下的phoenix.sh,配 ...
- C语言 · 空白格式化
标题:空白格式化 “空白格式化”具体做法是:去掉所有首尾空白:中间的多个空白替换为一个空格.所谓空白指的是:空格.制表符.回车符. 填空为:*p_to<*p_from: #include< ...
- hdoj:2048
#include <iostream> using namespace std; ]; ]; int main() { int C; a[] = ; a[] = ; b[] = ; b[] ...
- DOTween-Ease缓动函数
Ease.InQuad 不知道Quad代表什么意思 Ease.InQuart 有1/4的时间是没有缓动. Ease.InQuint, 是1/5时间没有缓动. Ease.InExpo 一直很平缓, ...