20165233 实验一 Java开发环境的熟悉
20165233 实验一 Java开发环境的熟悉
实验要求
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
3.实验报告中统计自己的PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
需求分析 | 5min | 8.3% |
设计 | 15min | 25% |
代码实现 | 30min | 50% |
测试 | 5min | 8.3% |
分析总结 | 5min | 8.3% |
4.严禁抄袭。
实验内容:
1.使用JDK编译、运行简单的Java程序;
2.使用IDEA 编辑、编译、运行、调试Java程序。
实验步骤
实验一 Java开发环境的熟悉-1
- 建立有自己学号的实验目录。
- 通过vim Hello.java编辑代码。
- 编译、运行Hello.java代码。
实验一 Java开发环境的熟悉-2
- 新建HelloJDB类
- 单步调试、设置断点
① Step Over:程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
② Step Into:程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)
③ Force Step Into:进入任何方法
④ Step Out:如果在调试的时候进入了一个方法,并觉得该方法没有问题,就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
⑤ Run to Cursor:将程序运行到光标处。
- 设置条件断点
实验一 Java开发环境的熟悉-3
练习题目:实现求两个数的最大公约数和最小公倍数的功能,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
通过命令行实现
- 正常情况
- 边界情况
下边界
上边界
- 异常情况
通过IDEA实现
- 正常情况
- 边界情况
- 异常情况
- 断点调试
实验中遇到的问题
- 我在通过命令行运行与IDEA运行得到不一样“异常情况”运行的结果。例如:我输入-61与-8,由于我在程序里设计了“如果输入值小于0就将最大公因子与最小公倍数的值返回-1”,所以在IDEA中,就会得到
(-61,-8)=-1
,[-61,-8]=-1
的结果;而在终端里就会返回如下图的结果:
-
解决办法:在程序运行后出现
Exception in thread "main" java.lang.StackOverflowError
的报错,是java栈的内存溢出的结果。此内存溢出说明,java栈的设置太小,我们可以借助-Xss
这个参数模拟一下此异常,-Xss
是用来设置栈的大小。 -
分析:这是第一次遇到此类问题,但利用
-Xss
是来设置栈的大小,是要依据电脑来进行修改,有可能会更改出更大的bug,所以尽量利用IDEA来进行运行,对于程序的包容性也要更加注意,思考编写出更加全面的程序。