JavaWeb笔记-07-java基础 jdk新特性

学习内容

这里写图片描述

1、单元测试 junit的使用


测试对象 是类中的某个方法

使用前提: 导入jar包   注:MyEclipse中已经自带此jar包  所以不用导入。

使用:
    1)注解:  @Test  --表示该单元进行测试
           @Ignore  --表示该单元不进行测试

           @After   --在每个方法之前运行 
           @Before   --在每个方法之后运行

    2)测试方法主体
        @Test
        public void 方法名(){
            TestJunit 测试名称 = new TestJunit();
            测试名称.被测试的方法()
        }    

    通过为绿色,失败为棕红色

2、泛型


为什么使用泛型:
使用时,容易出现类型转化错误。
对象保存到集合中,会失去原本的类型(变为object)。

泛型解决问题方法:从入口处规定集合对象类型

泛型中 T 表示任意类型。

在泛型里写的是一个对象,是基本类型的对应包装类 。 不能写基本数据类型,            
    byte -- Byte
    short -- Short
    int -- Integer
    long -- Long
    float -- Float
    double -- Double
    char -- character
    boolean -- Boolean

 泛型擦除: 泛型只是在编译期出现。当编译后,泛型就不存在了


list 下:
    ArrayList:
        底层数据结构是数组,查询快,增删慢
        线程不安全,效率高
    Vector:
        底层数据结构是数组,查询快,增删慢
        线程安全,效率低
    LinkedList:
        底层数据结构是链表,查询慢,增删快
        线程不安全,效率高


遍历List集合:
    for

    增强for: for(类型 变量名:被遍历集合名)

    迭代器:
        Iterator<类型> 变量名 = 被遍历集合名.iterator();
        while(变量名.hasNext()){  
            System.out.println(变量名.next());
        }

遍历set集合:
    增强for  迭代器


遍历map集合:
    1)获取所有的key 通过key得到value 使用get方法
        Set<String> sets = map.KeySet();
        for(String key : sets){
            String value = map.get(key);
            System.out.println(value);
        }

    2) 获取key和value的关系
        Set<Entry<String,String>> set1 = map.entrySet();
            <Entry<A,B>> 是key和value的关系
        for(Entry<String,String> entry : set1){
            String keyv = entry.getkey();
            String valuev = entry.getValue();
            System.out.println(keyv +":"+ valuev)   
        }

3、枚举


枚举: 在一定范围内取值,值只能是范围中任意一个。

枚举关键字 : enum     枚举类的构造方法是私有的

举例:枚举红绿灯
    public class Color {
        private Color3 color3;

        public void test(){
            this.color3 = Color3.RED;
        }
    }

    enum Color3 {
        RED,GREEN,YELLOW;
    }


特殊枚举:
1)枚举类中有构造方法   构造方法带参 ,枚举实例也应带参   
2)枚举类中有抽象方法   此时每个枚举实例也应该重写方法

枚举常用的方法
name();  返回枚举名称
ordinal();  返回枚举下标
valueOf(Class<T> enumType,String name); 得到枚举对象

valueOf(String name);  得到枚举对象数组
values(); 获得枚举对象数组

4、自动拆装箱

装箱:把基本的数据类型转化成包装类
拆箱:把包装类转化成基本数据类型

eg: Integer i = 10; 自动装箱
     int m = i ;   拆箱   

5、可变参数

应用场景 :  
    多个方法 方法逻辑相同 唯一不同的是方法的参数不同。

eg:实现两个数的相加 实现三个数的相加 实现四个数的相加
public void add1(int...nums){   //nums理解为数组,存储传过来的参数
    int sums = 0;
    for(int i = 0 ; i < nums.length ; i++){
        sum +=nums[i];
    }
}

注:
1)参数列表中只能有一个可变参数
2)可变参数必须放在参数列表最后。

猜你喜欢

转载自blog.csdn.net/qq_41307491/article/details/81229228