20192310 实验一《Linux基础与Java开发环境》实验报告
学号 2020-2021-1 《数据结构与面向对象程序设计》实验x报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 严嘉钰
学号:20192310
实验教师:王志强
实验日期:2020年10月8日
必修/选修: 必修
1.实验内容
- 基于命令行和IDE进行简单的Java程序编辑、编译、运行和调试。
- 练习Linux基本命令;
- 学习Java程序的JDB调试技能
- 编写简单的Java程序。
2. 实验过程及结果
- 基于命令行进行简单的java程序编辑、编译、运行和调试
此为使用vim编辑器编写了一个简单的java程序
使用javac命令编译java文件后使用java命令运行程序,程序成功运行
使用jdb对编译好的文件进行调试,stop in设置方法断点,step进行运行下一行代码,next运行下一个方法,locals查看本地变量,print可以查看某个变量的值,list指出运行至源代码的位置
上传至码云时先git -m commit再git push即可 - 基于IDE进行简单的java程序编辑、编译、运行和调试
在 IntelliJ IDEA 里,编译方式一共有三种:
Compile:对选定的目标(Java 类文件),进行强制性编译,不管目标是否是被修改过。
Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过,由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。
Make:使用最多的编译操作。对选定的目标(Project 或 Module)进行编译,但只编译有修改过的文件,没有修改过的文件不会编译,这样平时开发大型项目才不会浪费时间在编译过程中
在这里我使用的是rebuild进行编译,之后run,可以在下方的窗口中看到程序的运行结果
在run中找到debug后即可开始调试,下方的debug栏中有用于debug的工具
在代码左侧点击出现红点代表出现断点
> Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
> Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法,如第25行的put方法。
> Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
> Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
> Drop Frame (默认无):回退断点,后面章节详细说明。
> Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
如图,设置完断点后我设置了四个断点,步过点一个断点后控制台上打出 Please enter m,n:
之后步入下一个断点,在控制台上打入6,此时为m赋值6,并在代码页中体现了。步入下一个断点时,该断点中的判断未执行于是进入断点下的方法,并为n赋值为8,步过到最后一个断点时输出结果
- 练习linux基本命令
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
删除文件
rm test
强制删除文件
rm -f test
删除目录
rm -r family
移动文件
使用 mv(move or rename files)命令移动文件
man为字典
locate可查询文件地址
grep搜索指定文件内容
whereis搜索并返回第一个结果
3. 实验过程中遇到的问题和解决过程
- 问题1:jdb单步调试时使用locals不能出现变量地址
- 问题1解决方案:在jdb时加入-g参数
- 问题2:忘记linux命令
- 问题2解决方案:百度查阅
其他(感悟、思考等)
使用idea这种IDE进行java程序的编写比使用命令行要来的方便的多,特别是调试时十分直观,是命令行所不能比拟的,但使用命令行可以加深我们对计算机本身的研究,可谓各有利弊