# 20202304 2021-2022-1 《数据结构与面向对象程序设计》实验一报告
课程:《程序设计与数据结构》
班级: 2023
姓名: 何锐
学号:20202304
实验教师:王志强
实验日期:2021年9月19日
必修/选修: 必修
## 1.实验内容
- 基于命令行进行简单的Java程序编辑、编译、运行和调试。
- 练习Linux基本命令;
- 学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html
- 编写简单的Java程序。
## 2. 实验过程及结果
一、基于命令行进行简单的Java程序编辑、编译、运行和调试。
(1)编辑
对于java程序的编辑,在linux系统中主要通过vim实现。Vim是一个非常好的文本编辑器。
首先,vim可以直接通过在终端中使用 vim 文件名 或者 vi 文件名 来创建文本文件,通过不同的文件后缀也可创建不同类型的文件。如:
进入vim后,可以进行文本编辑,有三种模式:
普通模式(Normalmode)、插入模式(Insertmode)、命令行模式(Commandlinemode)
普通模式==>按ia进入插入模式
普通模式==>按:进入命令行模式
其他模式返回普通模式只需ESC键。
光标移动为 h左 l右 j下 k上 ;
i在当前光标处进行编辑 ;I在行首插入A在行末插入 ; a在光标后插入编辑 ;
o在当前行后插入一个新行 ; O在当前行前插入一个新行。
x删除游标所在的字符;X删除游标所在前一个字符
Delete同x ;dd删除整行(即剪切,可以通过p粘贴) ;dw删除一个单词 ;
:q!强制退出,不保存 :q退出 :wq!强制保存并退出
在普通模式下.(小数点)表示重复上一次的命令操作
普通模式中,yy复制游标所在的整行
普通模式中使用p粘贴
u{n}撤销一次或n次操作
U(大写)撤销当前行的所有修改
Ctrl+r,撤销undo的操作
更多vim操作和指令可以通过Vimtutor进行边玩边学
(2)编译
在完成一个java文件的编辑后,即写完一个完整的.java文件后,通过命令 javac 文件名 来对该java文件进行编译。
这是便完成了编译。
(3)运行
这里的hello文件是最基础的helloworld。
运行该程序,即hello.class文件,通过命令 java 文件名(此时不需要扩展名) 即可运行程序,如图:
(4)调试
调试可以通过JDB和GDB调试工具对java代码进行调试,细节见第三部分。
二、练习Linux基本命令
在练习命令行之前首先练习一下linux关于终端的几个快捷键
CTRL+ALT+T
:打开终端;CTRL+SHIFT+T
:新建标签页;ALT+数字N
:终端中切换到第N个标签页;Tab
:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab
键就可以得到提示或者帮助完成;上下键盘
:切换命令历史,刚输入的命令,按上
键就可以恢复;CTRL+C
:中断程序运行。
1.基本命令
ls 列出当前目录下的文件(ls -a可以显示当前目录中的所有内容,包括隐藏文件和目录)
cd 目录名称 = 进入某目录 (cd ..便是退回上一目录)
如上便进入了java文件夹或目录
mkdir 创建文件夹
rm 删除当前目录下某个文件
mv 将某文件转移或重命名
cp 复制某文件至某地址
2.帮助类命令
info
命令是Linux下info格式的帮助指令。阅读 info 格式的文档。
man
man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。
cheat
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。
3.更多
还有很多命令,使用率不高,但可以便利很多操作。
find查找一个文件在系统中的什么位置,locate是神速版本的find。可以通过cheat find
学习find
命令。
grep 可以对文件全文检索
whereis,which告诉你使用的命令工具装在什么地方。
apt-cache可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。
三、学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html
1.习惯:
在bash中打开三个标签页,一个使用vim编辑代码;一个使用javac, java编译运行代码;一个使用JDB调试代码。
2.过程
首先,完成对java程序的编写,使用:w进行保存。
然后,进行编译,使用javac -g ,其中-g参数是为了产生各种调试信息,一定要加上,否则无法调试。
最后,jdb 文件名 对其进行调试
3.调试基础
设置断点:方法断点、行断点、条件断点、临时断点。
stop in xxx 设置断点
run 使程序运行
next 使程序运行下一行
四、编写简单的java程序:
1.hello world
2.猜数游戏
3.计算利息
##实验过程中遇到的问题和解决过程
1.使用linux和vim的过程中对于命令功能的记忆有些许偏差,在反复记忆和联系后解决。
2.在编写java程序时总是忘记引入类,从云班课上学习类的相关知识后解决。
3.一开始对于调试完全不明白,在帖子里学习后逐渐掌握。
4.关于码云的操作不懂,在csdn上学习后解决。
##其他(感悟、思考等)
最初不理解为何不适用集成开发环境直接学习java,反而还要使用linux,后来在蓝桥云课上自学linux的相关内容以及结合老师上课所讲后愈发理解linux对于初学者的重要性,对于开源且操作及其方便(熟练后)的系统,利用linux可以帮助学习者了解程序运行的原理,能打牢基础。同时,在逐渐熟练后,linux也能做更多具有想象力和创造性的编程工作。
而java,不同于我们之前所学的c,但又有很多相似之处,在学习后发现它也有自己独到的地方,有的地方方便了很多,但是可能由于我还没有完全上手,在编写过程中我还是有些觉得困难,并不能完全理解类与对象相对于c的过程性的差别和好处。
## 参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)