Vi, Java, Ant, Junit的自学报告
1. vi/vim编辑器的使用
1.1 vi/vim简介
vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。
vim是vi的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。
vi有3个模式:编辑模式、命令模式、末行模式。
编辑模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
末行模式:可以保存文件、退出vi、设置vi、查找等功能(末行模式也可以看作是命令模式里的)。
1.2 vi基本操作
1.2.1 进入编辑模式
命令 | 含义 |
---|---|
i和I | i在光标前插入,I在行首插入 |
a和A | a在光标后插入,A在行末插入 |
o和O | o在光标所在行下一行插入,O在光标所在行上一行插入 |
1.2.2 移动光标
命令 | 含义 |
---|---|
h | 光标向左移动 |
j | 光标向下移动 |
k | 光标向上移动 |
l | 光标向右移动 |
H、M、L | 光标移动到到可见屏幕第一行(H)、中间行(M)、最后一行(L) |
^和$ | ^移动到行首,$移动到行末 |
G和gg | G文档最后一行,gg文档第一行 |
ctrl+f、ctrl+b | 向前翻屏、向后翻屏 |
ctrl+d、ctrl+u | 向前半屛、向后半屛 |
{ 和 } | {向上移动一段,}向后移动一段 |
w和b | 向前移动一个单词,向后移动一个单词 |
1.2.3 撤销命令
命令 | 含义 |
---|---|
u | 一步一步撤销 |
ctrl+r | 反撤销 |
1.2.4 重复命令
命令 | 含义 |
---|---|
. | 重复执行上一次操作的命令 |
1.2.5 复制粘贴
命令含义 | 含义 |
---|---|
yy | 和 n yy 和y$ y^ yy复制当前行,5 yy复制5行 |
p | 在光标所在位置向下新开一行粘贴 |
1.2.6 选择文本
命令 | 含义 |
---|---|
v 和 V | v选择单个字符,V选择整行 |
<<和>> | 选择文本之后,向左缩进,向右缩进 |
1.2.7
命令 | 含义 |
---|---|
命令模式下,r和R | r替换当前字符,R替换光标后的字符 |
末行模式下,/ + str | n查找下一个,N查找前一个 |
末行模式下,%s/abc/123/g | 将文件中所有abc替换为123 |
末行模式下,1, 10s/abc/123/g | 将第一行至第10行之间的abc替换成123 |
2. 熟悉JDK环境及JAVA语言学习
2.1 JAVA简介
Java 是由 Sun Microsystems 公司于1995年5月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling 和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
- J2SE(Java2 Platform Standard Edition,java平台标准版)
- J2EE(Java 2 Platform Enterprise Edition,java平台企业版)
- J2ME(Java 2 Platform Micro Edition,java平台微型版)。
2005年6月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为Java EE
, J2SE更名为Java SE
,J2ME更名为Java ME
。
2.2 JAVA主要特性
-
Java语言是简单的
Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
-
Java语言是面向对象的
Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++ 语言只对虚函数使用动态绑定。总之,Java 语言是一个纯的面向对象程序设计语言。
-
Java语言是分布式的
Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
-
Java语言是健壮的
Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。
-
Java语言是安全的
Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了 Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。
-
Java语言是体系结构中立的
Java 程序(后缀为 .java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 .class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
-
Java语言是可移植的
这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
-
Java语言是解释型的
如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
-
Java是高性能的
与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。
-
Java语言是多线程的
在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable)的构造子将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。
-
Java语言是动态的
Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
2.3 JDK环境
三步:下载、安装、配置环境变量。
2.4 编译运行HelloWorld
- Helloworld.java
public class Helloworld{
public static void main(String[] args) {
System.out.println("hello world!");
}
}
-
编译运行
3. 熟悉Ant环境,并利用Ant实现HelloWorld的自动编译
3.1 配置Ant
3.1.2 下载解压
3.1.2 设置环境变量并测试
3.2 编译运行Helloworld.java
4. 学习JUnit,利用Ant、JUnit测试通过HelloWorld
4.1 JUnit概述
JUnit是一个Java编程语言的单元测试框架。
特点:
- JUnit 是一个开放的资源框架,用于编写和运行测试。
- 提供注释来识别测试方法。
- 提供断言来测试预期结果。
- 提供测试运行来运行测试。
- JUnit测试允许你编写代码更快,并能提高质量。
- JUnit优雅简洁。
- JUnit测试可以自动运行并且检查自身结果并提供即时反馈。
- JUnit测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。
- JUnit在一个条中显示进度。