20202327 李佳欣 实验一《Linux基础与Java开发环境》实验报告
作者:互联网
课程:《程序设计与数据结构》
班级: 2023
姓名:李佳欣
学号:20202327
实验教师:王志强
实验日期:2021年9月19日
必修/选修: 必修
(一)实验内容
基于命令行进行简单的Java程序编辑、编译、运行和调试。
练习Linux基本命令;
学习Java程序的JDB调试技能
编写简单的Java程序。
(二)实验要求
初步掌握Linux命令特别是man,find,locate,grep,which,cheat等核心命令;-
初步掌握Java开发的流程,会选用合适的开发环境;
掌握Java开发工具的使用,能编写简单的Java程序,会编辑、编译、运行简单的程序;
掌握相应环境下的调试方法。
(三)助教验收
- JDB调试技巧的掌握程度
- 编写简单程序,能够使用git命令上传到码云。
(四)实验报告
## 1.实验内容
1、基于命令行进行简单的Java程序编辑、编译、运行和调试
2、练习Linux基本命令和包括man,find,locate,grep,which,cheat等核心命令
3、学习Java程序的JDB调试技能
4、编写简单的Java程序。
## 2. 实验过程及结果
一、命令行
(1)三种模式的转换
普通模式、插入模式、命令行模式
在普通模式的情况下按ia进入插入模式;
在普通模式的情况下按:进入命令行模式;
在其他模式的情况下进入返回普通模式按ESC。
(2)将光标在相应区域进行移动
h(左)、l(右)、j(下)、k(上)、
w(移动到下一个单词)、b(移动到上一个单词)。
(3)删除操作、插入操作
x(删除光标所在处的字符)、X(删除光标所在的前一个字符)、D(删除至行末)、
d^(删除至行首)、dd(删除剪切或者整行)、dw(删除一个单词)、dG(删除至文档结尾)、d1G(删除至文档首部)、ndd(表示删除n行内容)、i(在当前光标处进行编辑)、
l(在行首插入)、A(在行末插入)、a在光标后插入一个新行、
o(在当前行后插入一个新行)、O(在当前行前插入一个新行)、
cw(替换从光标所在位置后到一个单词结尾的字符)。
(4)重复指令(operator [number] motion)、显示行号::set nu
(5)保存与退出
:wq!(强制保存并退出)、:w【文件】(另存到【文件】中)、shift+zz /:x /:wq(保存并退出)、:q!(退出但不保存)
(6)游标跳转
w(移动到下一个单词的开头)、e(移动到下一个单词的结尾或者当前单词的结尾)、
b(移动到前一个单词的开头)、ge(移动到前一个单词的结尾)、0 / ^(移动到到行头)、
$(移动到到行尾)、gg(移动到第一行)、G(移动到最后一行)、nG(移动到第n行)、
(7)撤销与替换、复制与粘贴
r+【待替换字母】(将游标所在字母替换为指定字母)、~(反转游标所在字母的大小写)、
R(连续替换,直到按下Esc)、cc(替换整行)、cw(替换一个单词)、u{n}(撤销n次操作)
、nyy(n为数字,复制游标所在的n行),p(粘贴到光标下)、P(粘贴到光标后)
二、Linux基本命令
Sudo (在需要根权限的每个命令之前使用) $ sudo su
ls(list)(显示你正在处理的那个目录里面的所有文件和文件夹) /home$ ls
cd更改目录(cd)是始终在终端中使用的主要命令。它是最基本的Linux命令之一。如果想要返回上一级,只要将双圆点(..)作为参数。
Mkdir(创建一个新的文件夹或子文件夹)$ mkdir folderName
Cp(从终端拷贝粘贴文件)$ cp src des
Rm(移除文件甚至移除目录)$ rm myfile.txt
apt-get(帮助安装需要在Linux中运行的软件)$ sudo apt-get update、$sudo dnf update
Grep(根据给定的关键字帮助找到文件)$ grep user /etc/passwd
Cat(显示文件里面的文本)$ cat CMakeLists.txt
Poweroff(直接从终端来关机)$ sudo poweroff
三、JDB调试
(1)在Linux命令行下学习Java编程。学习时在Ubuntu Bash中通过Ctrl+Shift+T快捷键打开三个标签(tab),一个使用vim编辑代码;一个使用javac, java(或ant, gradle...)编译运行代码;一个使用JDB调试代码。
(2)在Linux Bash中输入 vim HelloJDB.java编辑调试示例代码
(3)按Alt+3 进入第三个标签,使用jdb -classpath .:./bin HelloJDB对程序进行调试。
(4)使用方法断点、行断点、条件断点、临时断点四种断点进行调试,通过输入help来查询命令列表
(5)递归的学习依靠公式写出如下代码:
public class Factorial
{
public static void main(String [] args)
{
System.out.println(fact(5));
}
public static int fact(int n)
{
if (n == 0) return 1;
else
return n * fact(n-1);
}
}
四、编写简单的Java程序
编写如下的Java程序在javac上运行:
class Cat
{
int size;
String name;
void bark()
{
if(size>60)
{
System.out.println("Woof!Woof!");
}
else if(size>14)
{
System.out.println("Ruff!Ruff!");
}
else
{
System.out.println("Yip!Yip!");
}
}
}
class DogTestDrive
{
public static void main(String[] args)
{
Cat one = new Cat();
one.size = 70;
Cat two = new Cat();
two.size = 8;
Cat three = new Cat();
three.size = 35;
one.bark();
two.bark();
three.bark();
}
}
## 3. 实验过程中遇到的问题和解决过程
- 问题1:对命令行掌握得不熟悉,进行操作还需要查询列表。
- 问题1解决方案:及时对命令行操作列表进行复习,并在实践过程中不断总结熟练相关命令功能的操作
- 问题2:安装使用JDB的过程中出现问题,安装完成后不知道这么对其进行编辑以完成安装。
- 问题2解决方案:利用我们的有力助手百度搜索进行相关信息和资料的查询,顺利解决了这个问题
## 其他(感悟、思考等)
通过这一次的实验,我对于这两周学习的Java课程内容算是又进行了复习,我个人认为,学习到的知识应该赋予在实践中去,只有通过自己独立动手完成的项目,自己才会有一个深刻的映象,为以后的学习铺好了道路。我从云班课中提前阅读了课程相关资料,对于一个刚刚接触Java的小白来说,我对于Java的认识有了更深一点的理解,在博客园、码云中,我找到了很多大佬,学习Java的技巧,在里面看到了他们优秀的作品成果,也增强了我学习Java这门面向对象语言学习的信心。我会在以后的学习与实验中更加努力,勤奋,做到掌握java这门编程语言。
## 参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
-[《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
标签:Java,李佳欣,Cat,单词,光标,Linux,调试 来源: https://www.cnblogs.com/1076153186ljx/p/15327897.html