Java学习Day6——Map,异常

132 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

1.Map

建立映射关系

1.key(键)->value(值),key要唯一,键值对entry

2.Map有两个泛型,分别限制key和value的类型

3.Map.of不可变的map集合,HashMap可变的map集合

4.Map的增(put),删(remove),改(put),查(get)

5.Map的遍历,Map.entrySet(),用增强for循环遍历

代码Demo:

public class TestMap {
    public static void main(String[] args) {
        System.out.println(find1("blue"));

    }
    public static String find1(String key){
        Map<String,String> map = new HashMap<>();
        map.put("black","小黑");
        map.put("white","小白");
        map.put("blue","小蓝");
        return map.get(key);
    }
}
public class TestMap {
    public static void main(String[] args) {
        System.out.println(find1("blue"));

    }
    public static String find1(String key) {
        Map<String, String> map = new HashMap<>();
        map.put("black", "小黑");
        map.put("white", "小白");
        map.put("blue", "小蓝");
//        return map.get(key);
        for (Map.Entry<String, String> m : map.entrySet()) {
            System.out.println("Key:" + m.getKey() + "Value:" + m.getValue());
        }
        return map.get(key);
    }
}

2.异常

代码Demo:

public class TestTry {
    public static void main(String[] args) {
        try {
            test(0.0);
        }catch (IllegalArgumentException e){
            System.out.println(e);
        }
        System.out.println(3);

    }
    public  static void test(double p){
        if(p<=0){
            throw new IllegalArgumentException("参数异常");
        }
        else{
            System.out.println(2);
        }
    }
}

结果:不会终止,可以继续运行

image.png

无法处理异常的两种情况:

1.没加异常处理语句

2.main方法中catch的异常类型与实际的异常类型不同(Exception父类可以捕获子类异常)

3.一旦java虚拟机收到异常程序就会终止

image.png

image.png

Spring异常处理

Spring框架已经做好异常处理,无须自己单独写 image.png

运行时异常vs编译时异常

image.png

finally

无论有没有异常,都会执行finally内代码

使用场景:

操作外部资源,文件或数据库等,使用后都要关闭

此时把close放在finally中

代码Demo:

public class TestTry {
    public static void main(String[] args) {
        try {
            System.out.println(1);
        }catch (Exception e){
            System.out.println(2);
        }finally {
            System.out.println(3);
        }
    }

以上Java基础部分完成