一、vi/vim
vi/vim分为三种模式:命令模式,输入模式、底线命令模式
命令模式
此状态时用户对键盘进行敲击会被识别为命令而非字符输入
常见命令:
- i 切换到输入模式,以输入字符
- x 删除当前光标所在处的字符
- :切换到底线命令模式,以在最底一行输入命令
输入模式
在输入模式下,才可以进行字符的输入
可以进行以下操作:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
底线命令模式可以输入单个或多个字符的命令,命令数量多
基础命令:
- q 退出程序
- w 保存文件
二、JAVA
Java是从C++中衍生出的一种编程语言,和C++都属于面向对象的程序语言,但C++同时也可以进行面向过程的程序设计。
Java和C++相比更为简单,在C++中指针是一个非常常用的功能,通过指针利用地址直接指向内存中的变量,可以直接对变量进行修改,但是指针的操作较为复杂繁琐。Java中取消了指针的运用,减少了不必要错误发生的可能性。
java小程序
main函数
public static void main(String[] args)
{
new EasyCalculator();
}
界面部分
public class EasyCalculator extends JFrame{
JPanel panel;
JTextField num1,num2,sign1,sign2,result;
JButton button1,button2,button3,button4,button5;
public EasyCalculator()
{
this.setBounds(300,200,400,200);
this.setTitle("Easy Calculator");
this.setLayout(new BorderLayout());
num1=new JTextField("");
num2=new JTextField("");
sign1=new JTextField("");
sign2=new JTextField("=");
result=new JTextField("");
button1=new JButton("+");
button2=new JButton("-");
button3=new JButton("*");
button4=new JButton("/");
button5=new JButton("=");
panel=new JPanel();
panel.setLayout(new GridLayout(0,5));
sign1.setEditable(false);
sign2.setEditable(false);
result.setEditable(false);
num1.setHorizontalAlignment(SwingConstants.CENTER);
num2.setHorizontalAlignment(SwingConstants.CENTER);
sign1.setHorizontalAlignment(SwingConstants.CENTER);
sign2.setHorizontalAlignment(SwingConstants.CENTER);
result.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(num1);
panel.add(sign1);
panel.add(num2);
panel.add(sign2);
panel.add(result);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
this.add(panel);
addActionListener();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
监听事件
public void addActionListener()
{
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
sign1.setText("+");
}
});
button2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
sign1.setText("-");
}
});
button3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
sign1.setText("*");
}
});
button4.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
sign1.setText("/");
}
});
button5.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e)
{
String n1=num1.getText();
String n2=num2.getText();
String op=sign1.getText();
double d1=Double.parseDouble(n1);
double d2=Double.parseDouble(n2);
if(d2==0 && op.equals("/"))
result.setText("ERROR");
else
{
if(op.equals("+"))
result.setText(""+(d1+d2));
if(op.equals("-"))
result.setText(""+(d1-d2));
if(op.equals("*"))
result.setText(""+(d1*d2));
if(op.equals("/"))
result.setText(""+(d1/d2));
}
}
});
}
三、JUnit
JUnit是一个Java语言的单元测试框架。包括以下特性:
1、用于测试期望结果的断言(Assertion)
2、用于共享共同测试数据的测试工具
3、用于方便的组织和运行测试的测试套件
4、图形和文本的测试运行器
基本类HelloWorld.java
package HelloWorld;
public class HelloWorld {
public String hello()
{
return "Hello World";
}
public static void main(String args[])
{
HelloWorld world=new HelloWorld();
System.out.println(world.hello());
}
}
测试类HelloWorldTest.java
package HelloWorld;
import static org.junit.Assert.*;
import org.junit.Test;
public class HelloWorldTest {
public HelloWorld world=new HelloWorld();
@Test
public void test() {
assertEquals("Hello World!",world.hello());
}
}
四、Ant
Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。
nt的构建文件是基于XML编写的,默认名称为build.xml
Ant页面元素
< project > 元素:Ant 构件文件的根元素,Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。
< target > 元素: Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 target 可以存在相互依赖关系。
< property > 元素:该元素可看作参量或者参数的定义,project 的属性可以通过 property元素来设定,也可在 Ant 之外设定。
Ant常用任务
copy任务:该任务主要用来对文件和目录的复制功能
delete 任务:对文件或目录进行删除
mkdir 任务:创建目录
move任务:移动文件或目录
javac 任务:实现编译 Java 程序的功能
java 任务:实现运行 Java 程序的功能
jar 任务:生成 jar 文件