20202301 2021-2022-1 《数据结构与面向对象程序设计》实验一报告
课程:《程序设计与数据结构》
班级: 2023
姓名:贾奕琦
学号:20202301
实验教师:王志强
实验日期:2021年9月23日
必修/选修: 必修
## 1.实验内容
- 基于命令行进行简单的Java程序编辑、编译、运行和调试。
- 练习Linux基本命令。
- 学习Java程序的JDB调试技能:
https://www.cnblogs.com/rocedu/p/6371262.html。
- 编写简单的Java程序。
## 2. 实验过程及结果
一.基于命令行进行简单的Java程序编辑、编译、运行和调试。
命令行:<一>vim编辑器的使用
1、模式转换
<1>普通模式转换为插入模式:“i”或“a”
<2>普通模式转换为命令行模式:“wq”
<3>命令行模式转换为普通模式:“ESC ctrl+【”
2、光标移动
h→左
l→右
j→下
k→上
w→移动到下一个单词
b→移动到上一个单词
3、插入模式
i→在当前光标处进行编辑
l→在行首插入
A→在行末插入
a→在光标后插入一个新行
o→在当前行后插入一个新行
O→在当前行前插入一个新行
cw→替换从光标所在位置后到一个单词结尾的字符
4、删除
x→删除光标所在处的字符
X→删除光标所在前一个字符
dd→删除整行/剪切
dw→删除一个单词
D→删除至行位
d^→删除至行首
dG→删除至文档结尾
d1G→删除至文档首部
ndd→n为数字,表示删除n行
5、保存与退出
:q!→退出但不保存
shift+zz /:x /:wq→保存并退出
:w【文件】→另存到【文件】中
:wq!→强制保存并退出
6、游标跳转
gg→移动到第一行
G→移动到最后一行
nG→n为数字,表示移动到第n行
w→到下一个单词的开头
e→到当前单词的结尾/下一个单词的结尾
b→到前一个单词的开头
ge→到前一个单词的结尾
0 / ^→到行头
$→到行尾
7、显示行号→:set nu
8、复制与粘贴
普通模式:nyy→n为数字,复制游标所在的n行
yG→复制至文本末
y1G→复制至文本开头
p→粘贴到光标下
P→粘贴到光标后
9、替换和撤销
r+【待替换字母】→将游标所在字母替换为指定字母
~→反转游标所在字母的大小写
R→连续替换,直到按下Esc
cc→替换整行
cw→替换一个单词
u{n}→撤销n次操作
<二>java命令行基本操作
mkdir 创建新文件夹
cd 目录转换<cd ..进入上一级目录>
vi/vim 创建新文件并进入编辑
ls 列出目录下的所有文件
javac 编译一个java文件
java 运行一个java程序
rm 删除当前目录下某个文件
cp 复制某文件至某地址
mv 将某文件转移或进行重命名
man 查找命令的使用方法
二、练习Linux基本命令
1、find:Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
2、man:查看Linux中的指令帮助、配置文件帮助和编程帮助等信息
3、locate:用来查找文件或目录
4、grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
5、which:which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
6、whereis:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
7、cheat:cheat 允许你在命令行中创建和查看交互式的速查表cheatsheet。它旨在帮助提醒 *nix 系统管理员他们经常使用但还没频繁到会记住的命令的选项。
8、基本操作
三、学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html。
1·编写HelloJDB.java程序在页面一
2·在页面二使用javac -g -d bin src/HelloJDB.java对程序进行编译
3·在页面三对jdb进行初始化
调试程序先要学会设置断点,这样才能让程序停在你感觉有问题的代码处进行排查。学习调试我们要学会设置四种断点:
1、方法断点
2、行断点
3、条件断点
4、临时断点
在JDB中输入help可以查看命令列表:
通过运行stop in HelloJDB.main命令在main方法开始处设置断点,输入run命令来运行HellJDB.class,程序会在main()的开始处停下:
四、编写简单的Java程序
1、 输出helloworld
2、 区分print和println的区别
3、变量赋值并进行字符串的加和
## 3. 实验过程中遇到的问题和解决过程
- 问题1:cheat下载时,出现数次与电脑不匹配的情况
- 问题1解决方案:进行百度,寻求多种解决办法,最终更换初始源后成功完成下载
- 问题2:在利用jdb调试时,代码无法在页面运行
- 问题2解决方案:在同一页面运行后发现代码存在问题
- 问题3:jdb测试时,由于前期初始化工作未做好,导致无法进行
- 问题3解决方案:先寻求了同学的帮助,发现了代码的问题,后在网页的协助下,完成初始化
## 其他(感悟、思考等)
在刚一开始学习数据结构时,电脑就出现了主板烧坏的问题,导致很长一段时间,无法对课上所学,及时练习,因此落下许多;在后面学习中,由于基础不牢固,无法跟上正常进度。
在这一次的经历中,我感受到了,练习对于我们专业的重要性。没有付出就没有成功。
## 参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)