20202310 实验一《Linux基础与Java开发环境》实验报告

 

 

(一)实验内容

  • 基于命令行进行简单的Java程序编辑、编译、运行和调试。
  • 练习Linux基本命令;
  • 学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html
  • 编写简单的Java程序。

(二)实验要求

  • 初步掌握Linux命令特别是man,find,locate,grep,which,whereis,cheat等核心命令;-
  • 初步掌握Java开发的流程,会选用合适的开发环境;
  • 掌握Java开发工具的使用,能编写简单的Java程序,会编辑、编译、运行简单的程序;
  • 掌握相应环境下的调试方法。

(三)助教验收

- JDB调试技巧的掌握程度

- 编写简单程序,能够熟练使用git命令上传到码云。

(四)实验报告

课程:《程序设计与数据结构》
班级: 2023
姓名:肖衍豪
学号:20202310
实验教师:王志强
实验日期:2021919
必修/选修: 必修

## 1.实验内容
1、基于命令行进行简单的Java程序编辑、编译、运行和调试

2、练习Linux基本命令和包括man,find,locate,grep,which,whereis,cheat等核心命令

3、学习Java程序的JDB调试技能:https://www.cnblogs.com/rocedu/p/6371262.html

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调试

1Linux命令行下学习Java编程。学习时在Ubuntu Bash中通过Ctrl+Shift+T快捷键打开三个标签(tab),一个使用vim编辑代码;一个使用javac, java(ant, gradle...)编译运行代码;一个使用JDB调试代码

 

2Linux Bash中输入 vim HelloJDB.java编辑调试示例代码

3Alt+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解决方案:利用我们的有力助手百度搜索进行相关信息和资料的查询,顺利解决了这个问题
- 问题3:在书写Java程序是感觉比较复杂,对Java的语法掌握和理解不到位,在运行时不太会修改程序的bug

-问题3 解决方案:多进行动手,选取经典的Java程序编写案例,分析其语法结构,在学习之后自己动手码一遍,每次码完之后分析存在的问题并加以改进




## 其他(感悟、思考等)
    通过这一次的实验,我对于之前两周学习的Java课程内容有了复习,我个人认为,学习到的知识应该赋予在实践中去,只有通过自己独立动手完成的项目,自己才会有一个深刻的映象,在这一个过程中也算是对所学知识一次比较有效的复习,为以后的学习铺好了道路。我从云班课中提前阅读了课程相关资料,对于一个刚刚接触Java的小白来说,我对于Java的认识有了更深一点的理解,在博客园、码云中,我找到了很多大佬学习Java的技巧,在里面看到了他们优秀的作品成果,也增强了我学习Java这门面向对象语言学习的信息。在今后的实验中,我希望我能更加严谨、高效、高质量完成任务。


## 参考资料

-  [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)

-  [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)
-  ...

 

posted @ 2021-09-23 17:34  20202310肖衍豪  阅读(19)  评论(0编辑  收藏  举报