vi,java,ant 和Junit 的学习报告
一、vi编辑器的使用
总体概念:Vi 编辑器是所有 Unix 及 Linux 系统下标准的文本编辑器
进入Vi环境后,基本有三种基本状态:命令行模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。
命令行模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 或 last line mode。插入模式
只有进入此模式才能进行文字的输入,按「ESC」键可回到命令行模式。底行模式
常用来将文件保存或退出 vi,也可以设置编辑环境,如寻找字符串、列出行号等
基本操作
进入vi
输入 vi 及文件名后,进入 vi 全屏幕编辑画面:
$ vi filename
开始时为命令行模式。进入插入模式
在命令行模式下:
按「i」切换进入插入模式,从光标当前位置开始输入文件;
按「a」进入插入模式后,是从当前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从新行首开始输入文字。
按「ESC」键可回到命令行模式。退出vi及保存文件
在命令行模式下,按「:」冒号键进入底行模式,可进行以下操作:
: w filename (将文章以指定的文件名 filename 保存)
: wq (存盘并退出 vi)
: q! (不存盘强制退出 vi)- 其他操作
复制、跳转、查找、显示行号等
参考教程:vi编辑器的使用
二、java基础
(在熟悉C系列编程语言的基础上学习)
1、其数据类型、程序控制语句(循环、分支、跳转等)、面向对象思想、泛型、封装、继承、多态等与C系列语言类似
2、可实现类的嵌套
3、其标注方式(public等)与C#相似
4、继承方式
public class A extends B{}
5、实现接口方式
public class A implements B{}
6、GUI
- 图形交互界面基本框架
JFrame类,是Frame的子类,是一个扩展版java.awt.Frame,添加JFC/Swing组件架构的支持
需要引入的包:
import java.awt.*; import javax.swing.*;
Swing 的三个基本构造块:标签(JLabel)、按钮(JButton
)和文本字段(JTextField)JPanel:通过调用add方法加入基本构造块,JFrame再通过调用getContentPane().add(…)将其加入
此外各组件还有许多设置属性的方法,如setLayout, setBorder, setBackground等,不一一赘述。
三、Ant
1、是什么
- Ant(Another neat tool)是一个基于Java的生成工具,它可以实现项目的自动构建和部署等功能,简化操作过程。
2、相关知识
Ant 的构件文件是基于 XML 编写的,默认名称为 build.xml。
基本架构:
<?xml version="1.0"?>
<project name="HelloWorld">
<target name="sayHello">
<echo message="Hello,world!"/>
</target>
</project>
关键元素
- project:
Ant 构件文件的根元素,至少应包含一个 project 元素。
重要属性:
- name:指定project名字
- default:指定默认执行的target的名字
- basedir:指定基路径位置
target:
Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 targ
et 可以存在相互依赖关系。重要属性:
- name:指定 target 元素的名称
- depends:描述 target 之间的依赖关系
property:
project 的属性可以通过 property元素来设定
重要属性:- name:属性命名
- value:属性的值
可以通过${属性名}取得相应属性的值
- project:
常用任务
文件操作
- copy
- delete
- mkdir
- move
输出信息
- echo
编译、运行、打包
- javac
编译 Java 程序
重要属性:
- srcdir:所要编译的java文件所在的文件夹路径
- classpath:所要编译的java文件
- destdir:生成的class文件的目标文件夹
java
运行 Java 程序jar
打包生成 jar 文件- war
打包生成 war 文件
四、Junit
是什么
JUnit是一个Java语言的单元测试框架。作用
用来简化代码的测试过程,提高效率。用法
如果要测试以下类的成员方法,不借助junit的情况下,测试的代码需要写在测试类的main()函数中。
public class Calculator {
public int add(int a,int b){
return a+b;
}
public int sub(int a,int b){
return a-b;
}
}
借助junit的测试类写法:
public class CalculatorTest{
@Test
//测试 add()方法
public void testAdd(){
Calculator c = new Calculator();
int result = c.add(1, 2);
Assert.assertEquals(result, 3);
}
@Test
//测试 sub()方法
public void testSub(){
Calculator c = new Calculator();
int result = c.sub(2, 1);
Assert.assertEquals(result, 1);
}
}
注解
@Test: 需要测试的方法
@Ignore: 忽略的测试方法,暂时不运行此段代码
@Before: 每一个测试方法之前运行都要运行一次
@After: 每一个测试方法之后运行都要运行一次
@BeforeClass: 标注的方法必须是静态方法(static 声明),在所有测试开始之前,(仅)运行一次
@AfterClass: 标注的方法必须是静态方法(static 声明),在所有测试结束之后,(仅)运行一次
可能出现在@*后面的括号标注:
(1)(expected=XXException.class):如果程序抛出的异常类和XXException.class一样,则测试通过
(2)(timeout=100):如果程序的执行能在100毫秒(数字可改)之内完成,则测试通过,否则会提示超时错误,可以用来测试一些可能出现死循环的方法
注意事项
- 测试方法必须使用public void修饰,不能带任何参数
- 测试类所在的包名应该和被测试类所在的包名保持一致
- 测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖