1. Java中的JUnit单元测试

步骤:
1.选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步
2.创建Java类,进行单元测试。此时的Java类要求:
           ① 此类是public的  
           ②此类提供公共的无参的构造器
3.此类中声明单元测试方法。
           此时的单元测试方法:方法的权限是public,没有返回值,没有形参
4.此单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
5.声明好单元测试方法以后,就可以在方法体内测试相关的代码。
6.写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test

说明:
1.如果执行结果没有任何异常:绿条
2.如果执行结果出现异常:红条

import java.util.Date;

import org.junit.Test;


public class JUnitTest {

    int num = 10;

    @Test
    public void testEquals() {
        String s1 = "MM";
        String s2 = "MM";
        System.out.println(s1.equals(s2));
        // ClassCastException的异常
        // Object obj = new String("GG");
        // Date date = (Date)obj;

        System.out.println(num);
        show();
    }

    public void show() {
        num = 20;
        System.out.println("show()....");
    }

    @Test
    public void testToString() {
        String s2 = "MM";
        System.out.println(s2.toString());
    }
}

 2. 包装类的使用

1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
2.掌握的:基本数据类型、包装类、String三者之间的相互转换

import org.junit.Test;

public class WrapperTest {

    // String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)
    @Test
    public void test5() {
        String str1 = "123";
        // 错误的情况:
        // int num1 = (int)str1;
        // Integer in1 = (Integer)str1;
        // 可能会报NumberFormatException
        int num2 = Integer.parseInt(str1);
        System.out.println(num2 + 1);

        String str2 = "true1";
        boolean b1 = Boolean.parseBoolean(str2);
        System.out.println(b1);
    }

    // 基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)
    @Test
    public void test4() {

        int num1 = 10;
        // 方式1:连接运算
        String str1 = num1 + "";
        // 方式2:调用String的valueOf(Xxx xxx)
        float f1 = 12.3f;
        String str2 = String.valueOf(f1);// "12.3"

        Double d1 = new Double(12.4);
        String str3 = String.valueOf(d1);
        System.out.println(str2);
        System.out.println(str3);// "12.4"

    }

    /*
     * JDK 5.0 新特性:自动装箱 与自动拆箱
     */
    @Test
    public void test3() {
        // int num1 = 10;
        // //基本数据类型-->包装类的对象
        // method(num1);

        // 自动装箱:基本数据类型 --->包装类
        int num2 = 10;
        Integer in1 = num2;// 自动装箱

        boolean b1 = true;
        Boolean b2 = b1;// 自动装箱

        // 自动拆箱:包装类--->基本数据类型
        System.out.println(in1.toString());

        int num3 = in1;// 自动拆箱

    }

    public void method(Object obj) {
        System.out.println(obj);
    }

    // 包装类--->基本数据类型:调用包装类Xxx的xxxValue()
    @Test
    public void test2() {
        Integer in1 = new Integer(12);

        int i1 = in1.intValue();
        System.out.println(i1 + 1);

        Float f1 = new Float(12.3);
        float f2 = f1.floatValue();
        System.out.println(f2 + 1);
    }

    // 基本数据类型 --->包装类:调用包装类的构造器
    @Test
    public void test1() {

        int num1 = 10;
        // System.out.println(num1.toString());
        Integer in1 = new Integer(num1);
        System.out.println(in1.toString());

        Integer in2 = new Integer("123");
        System.out.println(in2.toString());

        // 报异常
        // Integer in3 = new Integer("123abc");
        // System.out.println(in3.toString());

        Float f1 = new Float(12.3f);
        Float f2 = new Float("12.3");
        System.out.println(f1);
        System.out.println(f2);

        Boolean b1 = new Boolean(true);
        Boolean b2 = new Boolean("TrUe");
        System.out.println(b2);
        Boolean b3 = new Boolean("true123");
        System.out.println(b3);// false

        Order order = new Order();
        System.out.println(order.isMale);// false
        System.out.println(order.isFemale);// null
    }

}

class Order {

    boolean isMale;
    Boolean isFemale;
}
import org.junit.Test;

/*
 * 关于包装类使用的面试题
 * 
 * 
 */
public class InterviewTest {

    @Test
    public void test1() {
        Object o1 = true ? new Integer(1) : new Double(2.0);
        System.out.println(o1);// 1.0

    }

    @Test
    public void test2() {
        Object o2;
        if (true)
            o2 = new Integer(1);
        else
            o2 = new Double(2.0);
        System.out.println(o2);// 1

    }

    @Test
    public void test3() {
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);// false

        // Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],
        // 保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在
        // -128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率

        Integer m = 1;
        Integer n = 1;
        System.out.println(m == n);// true

        Integer x = 128;// 相当于new了一个Integer对象
        Integer y = 128;// 相当于new了一个Integer对象
        System.out.println(x == y);// false
    }

}