vi编辑器
简介
vi编辑器是linux最基本的文本编辑器,基本全部靠键盘进行操作和输入。
vi编辑器可分为3种状态,分别是命令模式、插入模式和底行模式。
当我们初始进入vi的时候,首先进入的就是命令模式。在命令模式下能够控制屏幕光标的移动,字符、字或行的删除。
在命令模式下按i可进入插入模式,按:则进入底行模式。在插入模式按ESC进入命令行模式
在linux下的基本操作
###命令行模式
[i] 进入插入模式,从光标位置输入文字
[a] 进入插入模式,从目前光标位置的下一个位置开始输入文字
[o] 进入插入模式,插入新的一行,从行首开始输入文字
[h] [j] [k] [l] 分别控制光标上下左右一格,也可以直接用上下左右
[ctrl][b] 屏幕后移动一页
[ctrl][f] 屏幕前移动一页
[ctrl][u] [ctrl][d] 分别往前后移动半页
[0] 光标移到文章开头
[G] 光标移到文章末尾
[w] 光标跳到下个字开头
[b] 光标回到上个字开头
[x] 删除光标后面的一个字符
[X] 删除光标前面的一个字符
[dd] 删除行.
[yy] 复制所在行
[p] 粘贴
[r] 替换字符
[u] 撤销操作
底行模式
[set nu] 为每一列列出行号
[#] 跳到第几行
[/关键字] 查询关键字,[n]继续往下寻找
[w] 保存文件
[q] 退出
[wq] 保存并退出
实际操作
进入插入模式,编辑一段文字
保存操作
复制粘贴
设置行号
总结
总体来说vi可以说是和其他的编辑器有很大的不同,一些快捷键有所区别,主要的是全键盘输入,对于提高打码速度有很大的作用。其次还是首次接触,和常用vscode还有觉得有些别扭的。
java
对于java,由于上学期已经选了java面对对象设计的专选课,所以也不能算是自学了,对于java基本的知识以及一些设计多线程、UI、多态、继承和接口,还是基本了解的。既然是自学报告,这里就用少一些篇幅吧。
由于实训,又复习了一遍java,对于给定的教程觉得还是比较入门的一些。从java和从c++的区别来说,java最好的地方就是取消了让人迷得要死的指针了。
java是纯面对对象的语言,和c++还是有很多相似之处的,所以学习起来也不很难。由于是纯面对对象的语言,java把main设置为一个静态的共有函数,以此来调用其他的函数。
一个简单的小程序
import java.util.*;
public class a {
public static void main(String agrs[]) {
System.out.println("please input");
Scanner s = new Scanner(System.in);
int a = 0;
a = s.nextInt();
for (int i = 1; i<= a; i++) {
for (int t = i; t < a; t++) {
System.out.print(" ");
}
for (int t = i; t >= 1; t--) {
System.out.print(t);
}
for (int t = 1; t <= i; t++) {
if (t == 1) {
}
else {
System.out.print(t);
}
}
for (int t = i; t < a; t++) {
System.out.print(" ");
}
System.out.println();
}
s.close();
}
}
输出结果
例如一个animal的程序,主要是继承和多态
abstract public class Animal{
abstract public void greeting();
}
public class Cat extends Animal {
public void greeting() {
System.out.println("Meow!");
}
}
public class Dog extends Animal {
public void greeting() {
System.out.println("Woof!"); }
public void greeting(Dog another) {
System.out.println("Woooooooooof!"); }
}
public class BigDog extends Dog {
public void greeting() {
System.out.println("Woow!");
}
public void greeting(Dog another) {
System.out.println("Woooooowwwww!");
}
}
public class TestAnimal {
public static void main(String[] args) { // Using the subclasses
Cat cat1 = new Cat();
cat1.greeting();
Dog dog1 = new Dog();
dog1.greeting();
BigDog bigDog1 = new BigDog();
bigDog1.greeting(); // Using Polymorphism
Animal animal1 = new Cat();
animal1.greeting();
Animal animal2 = new Dog();
animal2.greeting();
Animal animal3 = new BigDog();
animal3.greeting();
//Animal animal4 = new Animal(); // Downcast
Dog dog2 = (Dog)animal2;
BigDog bigDog2 = (BigDog)animal3;
Dog dog3 = (Dog)animal3;
Cat cat2 = (Cat)animal2;
dog2.greeting(dog3);
dog3.greeting(dog2);
dog2.greeting(bigDog2);
bigDog2.greeting(dog2);
bigDog2.greeting(bigDog1);
}
}
Junit
简介
Junit是一个进行单元测试的软件,我们学习使用的Junit4,相比Junit3有了很大的改进。
Junit主要有下面一些命令
@Before:
使用了该元数据的方法在每个测试方法执行之前都要执行一次
@After:
使用了该元数据的方法在每个测试方法执行之后要执行一次。
@Test:
测试该部分代码
@ignore:
该元数据标记的测试方法在测试中会被忽略。
配置Junit环境
将Junit-4.9.jar放到jdk的lib文件夹里,并设置环境变量
实验
简单的小程序HelloWorld
//HelloWorld.java
import java.util.*;
public class HelloWorld {
String str;
public void hello() {
str = "Hello World!";
System.out.println(str);
}
public String getStr() {
return str;
}
}
//HellowWorldTest.java
import org.junit.Test;
import junit.framework.TestCase;
import static org.junit.Assert.*;
public class HelloWorldTest {
public HelloWorld helloworld = new HelloWorld();
@Test
public void testHello() {
helloworld.hello();
assertEquals("Hello World!", helloworld.getStr());
}
}
Ant
简介
Ant 是一个 Apache 基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。能够实现一键编译、运行和配置。Ant运行时需要一个build.xml的构建文件。其是基于XML写的,如果用其他的构建文件则需要使用命令ant –f hello.xml sayHelloWorld、ant -buildfile hello.xml sayHelloWorld 或 ant –file hello.xml sayHelloWorld。Ant有4个关键元素,分别是project、target、
property 和 task。
project 元素是 Ant 构件文件的根元素,Ant 构件文件至少应该包含一个 project 元素,其有name属性、default属性和basedir属性。其中basedir用于指定基路径位置。
target 元素为 Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 target 可以存在相互依赖关系。其depends 属性
用于描述 target 之间的依赖关系,if 属性
用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行,unless 属性的功能与 if 属性的功能正好相反。
property 元素可看作参量或者参数的定义
环境部署
将Ant文件夹通过命令行移动到/usr/local里,再进行设置环境变量
实验
使用ant构建Helloworld小工程,并junit
build.xml
<?xml version="1.0"?>
<project name="HelloWorld" default="test" basedir="">
<property name="testdir" location="build/classes" />
<property name="srcdir" location="src" />
<property name="full-compile" value="true" />
<path id="classpath.base"/>
<path id="classpath.test">
<pathelement location="/lib/junit-4.9.jar" />
<pathelement location="${testdir}" />
<pathelement location="${srcdir}" />
<path refid="classpath.base" />
</path>
<target name="clean" >
<delete verbose="${full-compile}">
<fileset dir="${testdir}" includes="**/*.class" />
</delete>
</target>
<target name="compile" depends="clean">
<javac srcdir="${srcdir}" destdir="${testdir}"
verbose="${full-compile}">
<classpath refid="classpath.test"/>
</javac>
</target>
<target name="test" depends="compile">
<junit>
<classpath refid="classpath.test" />
<formatter type="brief" usefile="false" />
<test name="HelloWorldTest" />
</junit>
</target>
</project>
实验结果