Vi 编辑器
Vi 编辑器是 Linux 和 Unix 系统中的标准文本编辑器,功能强大,使用方便。在这次实训中,我掌握了 Vi 编辑器的一些基本用法。
进入 Vi 的方法
在系统提示符后输入 vi filename 即可进入 vi 编辑器编辑对应的文件。
Vi 的基本概念和使用方法
在 Vi 编辑器中,有三种模式,分别是命令模式、插入模式和底行模式。为了简化,一般将底行模式归入命令模式中。
命令模式 (Command Mode)
这是进入 Vi 的默认模式。在命令模式中,可以控制光标移动,对字符和段落进行删除、复制和移动等操作。在命令模式中按 “i”, “a” 或 “o” 键可以进入插入模式,按 “:” 键进入底行模式。
插入模式 (Insert Mode)
在插入模式中,可以输入文字,编辑文本内容。在插入模式中按 Esc 键可以回到命令模式。
底行模式 (Last Line Mode)
在底行模式中,可以保存文件 (w),退出 Vi (q),也可以对编辑界面做基本的设置和操作,如列出行号 (set nu)、跳到某一行和查找字符。
Java
Java 是一种完全面向对象的编程语言,与 C++ 语言有许多相近之处。相比于 C++,Java 移除了一些容易出错的特征,例如指针和多重继承,而提高了垃圾自动回收的能力。下面是在自学过程中学到的一些 Java 与 C++ 的不同之处。
与 C++ 一样,Java 程序同样以 main 函数作为执行入口,但 Java 中的 main 函数需要写在程序的一个主类中,作为类的一个静态方法。
除了 class (类),Java 还提供 interface (接口) 语法,方便程序员将接口从类的具体定义中剥离出来,成为独立的接口概念。在接口中,不需要定义方法的主体和可见性,因为接口需要由具体的类来实现,而且根据接口的定义,接口的可见性都为 public。
类的继承要使用 extends 语句,接口的实现要使用 implements 语句。
Java 中有包 (package) 的概念,可以更好地组织和使用项目中的 Java 程序,也提高了程序的可移植性。包的名字与程序的路径相对应。在程序的开始用 package 建立包,用 import 调用包。
C++ 中类可以多重继承,而 Java 中只有接口能够多重继承。
Ant
Ant 是一个跨平台的构建工具,它可以实现项目的自动构建和部署等功能,通常用来构建 Java 程序。
Ant 的构建文件是 xml 文件,非常便于阅读和组织。
Ant 的基础元素
project
project 元素是 Ant 构建文件的根元素。project 元素中包含 target 元素。project 元素有许多属性,例如 name 属性指定 project 的名称,default 属性指定默认的 target,basedir 属性指定基路径的位置。
target
target 元素是 Ant 的基本执行单元,可以包含一个或多个任务。target 之间可以有依赖关系。target 元素也有不同的属性,如 name 属性指定 target 的名称,depends 属性描述 target 之间的依赖关系,if 属性验证指定的属性是否存在,description 属性用来描述 target 的功能。
property
property 元素是参数的定义,可以用作其他元素的属性。通过${name}可以获取 property 元素的值。
Ant 的常用功能
利用 Ant 可以自动完成许多基本功能,如复制、删除、创建和移动目录、文件。利用 Ant 也可以使用 javac、java 和 jar 等命令自动化构建和部署 Java 项目。Ant 与 JUnit 结合使用,可以十分方便地对程序进行测试。
Ant 构建文件示例
1 | <?xml version="1.0"?> |
执行命令 ant,可以自动完成 Calculator 程序的清理、编译、运行和打包。
JUnit
Junit 是一款功能强大的单元测试工具,它简化了开发人员执行单元测试的难度,而 JUnit 4 中使用了 Java 5 的注解 (Annotation),使测试用例的编写变得更加简单。
JUnit 4 使用的 Annotation
@Before
使用这个注解的方法只能有一个,并且要在每个测试方法执行之前都执行一次。
@After
使用这个注解的方法只能有一个,并且要在每个测试方法执行之后都执行一次。
@Test
使用这个注解的方法为测试方法。
@Test(expected=*.class)
expected 属性的值是一个异常类型,使用这个注解可以测试程序运行中的错误。
@Test(timeout=xxx)
这个注解可以给测试设定最大执行时间。只有在规定时间内执行完成才算成功。
@Ignore
使用这个注解的方法会被忽略。可以应用于暂时不用或者是没有实现的测试方法。
使用 Junit 测试 HelloWorld
1 | ---HelloWorld 类--- |
1 | ---HelloWorldTest 类--- |
编译并运行测试程序,可以对 HelloWorld 类进行测试。