java中的JUnit测试

步骤:

  • 1.创建Java类,进行单元测试。
  • 此时的Java类要求:此类是public的、此类提供公共的无参的构造器
  • 2.此类中声明单元测试方法
  • 此时的单元测试方法:方法的权限是public,没有返回值,没有形参
  • 3.次单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
  • 4.声明好单元测试方法后,就可以在方法内测试相关代码
  • 说明:如果执行结果没有任何异常:绿条,有异常:红条
public class JUnitTest {

    int num = 10;

    @Test
    public void testEquals(){
        String s1 = "MM";
        String s2 = "MM";
        System.out.println(s1.equals(s2));

//        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());
    }
}

包装类的使用:

  • 1.java提供了8中基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
  • 2.基本数据类型、包装类、String三者之间的相互转换
public class WrapperTest {


    //基本数据类型-->包装类:调用包装类的构造器
    @Test
    public void test1(){
        int num1 = 10;
//        System.out.println(num1.toString());//基本数据类型没有类的方法
        Integer in1 = new Integer(num1);//Integer重写了tostring方法
        System.out.println(in1.toString());

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

        //测试不通过
//        Integer in3 = new Integer("123abc");
//        System.out.println(in3);

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

        //忽略大小写,和true一样即为true
        Boolean b1 = new Boolean(true);
        Boolean b2 = new Boolean("true");
        Boolean b3 = new Boolean("true123");
        Boolean b4 = new Boolean("123");
        Boolean b5 = new Boolean("TrUe");

        System.out.println(b1);//true
        System.out.println(b2);//true
        System.out.println(b3);//false
        System.out.println(b4);//false
        System.out.println(b5);//true

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



    }

    //包装类-->基本数据类型:调用包装类的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);


    }

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

    @Test
    public void test3(){
//        int num1 = 10;
//        //基本数据类型转化成包装类对象
//        method(num1);

        //自动装箱
        int num2 = 10;
        Integer in1 = num2;//int型变量直接赋给一个类//自动装箱

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

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

        int num3 = in1;//自动拆箱

    }

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

        int num1 = 10;
        //方式1:连接运算
        String str1 = num1 + "ee";
        System.out.println(str1);

        //方式2:
        float f1 = 12.3f;
        String str2 = String.valueOf(f1);
        System.out.println(str2);

        Double d1 = new Double(12.4);
        String str3 = String.valueOf(d1);
        System.out.println(str3);
    }

    //String类型-->基本数据类型、包装类:调用包装类的parseXXX()
    @Test
    public void test5(){
        String str1 = "123";
//        int num1 = (int)str1;
//        Integer mun1 = (Integer)str1;//没有子父类关系,不能强转
        int num2 = Integer.parseInt(str1);
        System.out.println(num2 + 1);

        String str2 = "true";
        boolean b1 = Boolean.parseBoolean(str2);
        System.out.println(b1);//true

        String str3 = "true1";
        boolean b2 = Boolean.parseBoolean(str3);
        System.out.println(b2);//false
    }

}

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);//自动提升1.0
        System.out.println(o1);//
    }

    @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 m = 1;
        Integer n = 1;
        System.out.println(m == n);//true

        Integer x = 127;
        Integer y = 127;
        System.out.println(x == y);//true
        //Integer内部定义了IntegerCache,Integer内部定义了一个数组Integer[],存放-128~127,此时x、y都是数组里同一地址上的值,可以直接使用数组中元素

        Integer x1 = 128;
        Integer y1 = 128;
        System.out.println(x1 == y1);//false
        //出了内置数组范围,重新new一个Integer对象


    }
}

练习题:用vector代替数组

public class ScoreTest {
    public static void main(String[] args) {
        //1.实例化Scanner,用于从键盘获取学生成绩
        Scanner scan = new Scanner(System.in);

        //2.创建Vector对象,Vector v = new Vector();相当于原来的数组
        Vector v = new Vector();

        //3.通过for(;;)或者while(true)方式,给Vector中添加数组

        int maxScore = 0;
        for(;;){
            System.out.println("请输入学生成绩(负数代表结束):");
            int score = scan.nextInt();

            //3.2当输入是负数时,跳出循环
            if(score < 0){
                break;
            }
            if(score > 100){
                System.out.println("输入数据非法,请重新输入");
                continue;
            }

            //3.1添加操作::v.addElement(Object obj)

            //jdk5.0之前:
//            Integer inScore = new Integer(score);
//            v.addElement(inScore);//多态

            v.addElement(score);//自动装箱

            //4.获取学生成绩的最大值
            if(maxScore <  score){
                maxScore = score;
            }

        }

        //5.遍历Vector,得到每个学生的成绩,并与最大成绩比较,得到每个学生等级
        char level;
        for(int i = 0; i < v.size(); i++){
            Object obj = v.elementAt(i);

            //jdk5.0之前
//            Integer inScore = (Integer)obj;
//            int score = inScore.intValue();

            int score = (int)obj;

            if(maxScore - score <= 10){
                level = 'A';
            }else if(maxScore - score <= 20){
                level = 'B';
            }else if(maxScore - score <= 30){
                level = 'C';
            }else{
                level = 'D';
            }
            System.out.println("student-" + i + "score is " + score + ",level is" + level);
        }
    }
}