Vi,Java,Ant和Junit的自学报告

本文是作者的自学报告,分享了学习Vi/Vim、Java、Ant和JUnit的心得体会。在Vi/Vim部分,作者指出虽然Vi在Linux系统中常见,但个人更偏好Sublime Text。在Java部分,作者介绍了Java的基础和特性,并提到安装配置及HelloWorld程序。Ant的学习让作者感受到其类似脚本功能,可以简化构建过程。最后,作者讨论了JUnit作为单元测试工具的便利性,强调其在测试代码功能方面的优势。
摘要由CSDN通过智能技术生成

阶段一 Vi,Java,Ant和Junit的自学报告

一、有关 Vi/Vim 的学习

Vi/Vim 是大部分 linux 系统下比较常见的编辑器,但是我个人觉得这两种编辑器使用起来体感一般,可能是因为用惯了mac和windows 系统的界面不大一样,用起来。相对来说,我觉得 mac上的sublime 会更好一点,界面比较舒服,而且还能下载插件,有自动高亮,自动补全功能。主要 Vi/Vim 的不足之处是不能用鼠标,高亮的颜色调整起来也比较麻烦。关于如何打开,在终端下键入 vim/vi 均可以进入编辑器,如图:
在这里插入图片描述
按“i”可以进入输入模式,开始敲代码,需要退出的话则先按“ESC”,然后 :“ wq”保存并退出。由于在刚开始学习代码的时候尝试过使用避免编译,带来的体感较差,因此不再此花费过多时间进行尝试。

二、有关 java 的学习

在大二上半学期的时候,我就选修了陈武辉老师的Java与面向对象设计这一门课,同时在大一整个学期学习了C与C++,它们两者之间有着许多的异同点。通过老师的讲解与自己对一些书目的阅读,我陆续学习了Java语言基础、类与对象、多态和接口、接口与异常、继承与抽象类、线程、GUI与Java网络编程、Java Swing等。
Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。而由于C++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,因而影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小。比如说:
(1)Java比C++程序可靠性更高。C++相比Java而言的bug率更高,Java语言通过改变语言的特性大大提高了程序的可靠性。
(2)Java语言不需要程序对内存进行分配和回收。Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,同时,在Java语言中,内存的分配和回收都是自动进行的,我们无须考虑内存碎片的问题。 
(3)Java语言中没有指针的概念,引入了真正的数组。不同于C++中利用指针实现的“伪数组”, Java引入了真正的数组,同时将容易造成麻烦的指针从语言中去掉,这将有利于防止在c++程序中常见的因为数组操作越界等指针操作而对系统数据进行非法读写带来的不安全问题。
(4)Java用接口(Interface)技术取代C++程序中的多继承性。接口与多继承有同样的功能,但是省却了多继承在实现和维护上的复杂性。
(5)在C++中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c++中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c++中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
总体来说,相比较“繁琐”的C++而言,Java的学习更为简单,不存在指针这种不安全的概念,拥有完善的内存管理机制,但不可否认的是,Java的运行速度与底层兼容性上和C++还是有比较大的差距。
在安装与配置java环境方面,首先是安装 java,手动下载然后配置环境变量,因为当初有在mac与windows系统下安装过,所以我果断选择了包管理自动安装,也是最简便的安装方式,需要用的软件都可以一句命令“ sudo apt-get install”完成。
在编写Java程序方面:
简单的 HelloWorld 源码如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

在终端下编译执行 java 程序也很简单,命令如下:

$ javac HelloWorld.java
$ java HelloWorld
Hello World!

javac 是编译,java 是运行。
最后的输出也是直接在终端下显示的。
当然使用Eclipse会产生事半功倍的效果。

三、有关 ant 的学习

Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。
我同样是使用包管理自动安装,因此不需要配置环境变量,而且我使用 gedit /etc/profile查看的时候发现环境变量并没有改变
测试是否安装成功:
在这里插入图片描述
如图所示,我在还没有写 build.xml 的时候 build failed 了,也就是说我安装成功了。
然后就是学习 ant 的那些属性,标签等等的含义,一次过背下来太不现实了,我都是需要用的时候去查,用多了就熟悉了。
我个人理解 ant 其实就是一个脚本的功能,写好之后执行 ant 就可以执行你所需要的执行的事件。
终端下直接敲 ant 就会执行设定 default 事件,若例如“ant clean”就会执行 clean事件。这个和我上一年实训用到的 make 有点异曲同工之妙。
执行 ant clean 之后class 文件被清除了。

四、有关 JUnit 的学习

Junit 是单元测试,类比上一年实训,我觉得和 GTest 也还是蛮像的,都是判断期望输出和实际输出是否相同。可以比较方便的测试自己代码的函数是否有问题,否则 debug 大概就要在每个函数那里输出值或者打断点查看变量的值,没有 JUnit 来得方便。
如果在终端下编译运行的话必须要有依赖包,命令如下:

## 编译:
javac -classpath .:./../../gridworld.jar BugRunner.java
## 执行:
java  -classpath .:./../../gridworld.jar BugRunner

可以看到 JUnit 的版本,运行时间,最后“OK”表示测试通过。
在Junit配置安装方面,我直接使用了Eclipse自带的Junit,简单配置即可使用。
在运行时,需要在Eclipse 下新建一个通类,一测试类。
测试函数的时候必须要先有那个类的一个对象,才能调用相关函数。
运行的时候只需要“run as JUnit Test”
出来的结果如果是右侧的红色条代表不通过,如果是绿色则是通过了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值