[Grid World]实训第一阶段--vi,java,ant,junit自学报告

自学报告


  • vi
  • java
  • ant
  • Junit

vi编辑器的使用

vi编辑器是所有Unix及Linux系统下标准的编辑器。

1. vi基本概念

vi有三种状态,命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。
命令行模式控制光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或底行模式。
插入模式下才可以文字输入。
底行模式用于保存文件或退出vi,也可以设置编辑环境。

2. vi基本操作

a) 进入vi
在系统提示符号输入vi及文件名称后,就进入了vi全屏幕编辑画面: $ vi myfile
注意进入vi之后,是处于命令行模式,要切换到插入模式才能够输入文字。
b) 切换至插入模式编辑文件
在命令行模式下按一下字母「i」进入插入模式开始编辑。
c) Insert 的切换
  处于插入模式就只能一直输入文字,如果发现输错了字想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
d) 退出vi及保存文件
  在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)

vi支持粘贴与复制,和Windows中一样,从你要复制的开始位置拖动鼠标到结束位置,这块区域就反白了,再将光标移到你要粘贴的位置,按鼠标中键即可完成粘贴(如果你的鼠标是两个键的,同时按左右键即可模拟三键鼠标的中键)。如何进行查找呢?按键盘上的Esc键切换到命令状态,输入“?<你要查找的字符串>”(不带引号)就执行向下查找操作,而“/<你要查找的字符串>”表示向上查找,键盘上的n表示重复一次,而N表示反方向重复一次。

java学习

根据提供的《Java初学者时间教程》还是学到了很多。java跟c++的使用很像,在某方面来说我认为java会比c容易些,更容易上手。
语言入门按惯例实现helloworld,先写一个helloworld的java文档

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

在shell中进入文件所在的地方敲入 javac Hello.java进行编译,编译成功后出现Hello.class文件,最后在shell中敲入java Hello运行观察结果输出Hello World!嗯!成功编译运行!

java的基本语法跟c++也是很相似的
基本数据类型分4类8种。
逻辑型:boolean。
文本型:char。
整型:byte,short,int和long。
浮点型:double和float。

文字类型的char和String,这两个都是文本类型。但是不同之处:
1、char是基本数据类型,而String不是,但是String是非常有用的。
2、char是一个16位的unicode(国际码)字符,用单引号引上。例如,charc=‘100jq’;
String是一个类。字符串在java里是对象。在javaSE5中有三个类可以表示字符串:String,StringBuffer和StringBuilder。StringBuilder是jdk1.5的特性,在jdk1.5之前的版本中没有。字符串要放在双引号中。字符串中的字符也是Unicode。String对象表示的字符串是不能修改的。如果要对字符串修改,应该使用StringBuffer和StringBuilder类。

java的类里面有3个东西:
class类名{
声明属性;
声明构造函数;
声明方法;
}

变量也就有两种类型:基本类型和引用类型。基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。引用类型,可是引用类型呢?它是一个对象类型,它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。
基本类型自然是简单,声明是自然系统就给它空间了。引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。

java语言中提供了4类程序控制语句,来描述流程:
1.循环语句:while,do-while,for
2.分支语句:if-else,switch,
3.跳转语句break,continue,label:和return
4.异常处理语句:try-catch-finally,throw
循环跳转语句:
break[label]//用来从语句、循环语句中跳出。
continue[label]//跳过循环体的剩余语句,开始下一次循环。

数组特性:
1、数组中的元素是同一类型。数组的长度在创建时确定,并且在创建后不变。解释一下声明一个数组int i[5];这就是int类型,名字叫i的数组。里面的数都必须是int类型。并且长度在创建时确定了是5。
2、在java语言中,数组就是一个对象,所以创建数组与创建对象一样也是用new关键字来创建。举个例子,s=newchar[20];p=newPoint[50];
3、数组在被创建后,其元素被系统自动初始化了。字符元素被初始化为‘\u0000’,而对于对象数组都被初始化为null。如果你不初始化的话,在内存是找不到它的位置的。
4、数组中的第一元素记做第0个,i[0]是数组i的第一个元素。

集合类型主要有3种:set(集)、list(列表)、map(映射)和Queue(队列)。

java包含的东西还有很多很多,上面的只是最最基本一点也不全面的还有面向对象的方法等等,总之java语言跟c++有很多相同的但是也大有不同的,需要我以后好好的深入学习。

ANT

Ant 是一个 Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.

Ant 的构件文件是基于 XML 编写的,默认名称为 build.xml。
Ant 的关键元素 project、target、property 和 task。
1.project 元素
project 元素是 Ant 构件文件的根元素,Ant构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。接下来向读者展示一下 project元素的各属性。
1)name 属性
用于指定 project 元素的名称。
2)default 属性
用于指定 project 默认执行时所执行的 target 的名称。
3)basedir 属性
用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。
2. target 元素
它为 Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 target 可以存在相互依赖关系。它有如下属性:
1)name 属性
指定 target 元素的名称,这个属性在一个 project 元素中是唯一的。我们可以通过指定 target元素的名称来指定某个 target。
2)depends 属性
用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。Ant 会依照 depends 属性中 target 出现的顺序依次执行每个target。被依赖的 target 会先执行。
3)if 属性
用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。
4)unless 属性
该属性的功能与 if属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。
5)description 属性
该属性是关于 target 功能的简短描述和说明。
3.property 元素
该元素可看作参量或者参数的定义,project 的属性可以通过 property元素来设定,也可在 Ant 之外设定。若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入:

利用 Ant 构建和部署 Java 工程

Ant 可以代替使用 javac、java 和 jar 等命令来执行 java 操作,从而达到轻松的构建和部署 Java 工程的目的。
利用写过的HelloWorld的java文件,在同一个文件夹中创建xml文件,内容如下

<?xml version="1.0"?>
<project name="javaTest" default="jar" basedir=".">
    <target name="clean">
        <delete dir="build"/>
    </target>
    <target name="compile" depends="clean">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>
    <target name="run" depends="compile">
        <java classname="HelloWorld">
            <classpath>
                <pathelement path="build/classes"/>
            </classpath>
        </java>
    </target>
</project>

在shell中敲ant就可以看到HelloWorld的编译运行成功。

Java开源测试工具JUnit

JUnit4 是 JUnit框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。
JUnit 4 引入了一些其他的元数据,下面一一介绍: @Before: 使用了该元数据的方法在每个测试方法执行之前都要执行一次。
@After: 使用了该元数据的方法在每个测试方法执行之后要执行一次。
注意:@Before 和@After标示的方法只能各有一个。这个相当于取代了 JUnit 以前版本中的 setUp 和 tearDown方法,当然你还可以继续叫这个名字,不过 JUnit 不会霸道的要求你这么做了。
@Test(expected=*.class) 在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue (true)来测试。现在,通过@Test 元数据中的 expected 属性。expected 属性的值是一个异 常的类型
@Test(timeout=xxx): 该元数据传入了一个时间(毫秒)给测试方法, 如果测试方法在制定的时间之内没有运行完,则测试也失败。
@ignore: 该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已 经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时 候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一 个 String 的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(―该方法还没有实现‖), 在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。
用Junit测试HelloWorld.java
HelloWorld.java

import java.util.*; 
public class HelloWorld { 
    String str; 
    Public void hello() 
    {     
        str = "Hello World!"; 
    } 
    Public String getStr()
    {     
        Return str; 
    } 
} 

HelloWorldTest.java

import static org.junit.Assert.*; 
import org.junit.Test; 

public class HelloWorldTest 
{ 
    public HelloWorld helloworld = new HelloWorld();       @Test Public void testHello() 
    {     
        helloworld.hello();     
        assertEquals("HelloWorld!",helloworld.getStr();
    } 
}

把这两个文件放在同一个目录下。 使用如下命令运行:
@sser>javac –classpath .:junit-4.9.jar HelloWorldTest.java
@sser>java –classpath .:junit-4.9.jar –ea org.junit.runner.JUnitCore HelloWorldTest
可得到如下输出结果: JUnit version 4.9 . Time 0.007 OK(1 test) 我们可以看到运行正确,这也证明了我们的环境配置正确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值