系统相关
首页 > 系统相关> > 20202327 李佳欣 实验一《Linux基础与Java开发环境》实验报告

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