• 20155304 2016-2017-2 《Java程序设计》第五周学习总结


    20155304 2016-2017-2 《Java程序设计》第五周学习总结

    教材学习内容总结

    第八章

    • try catch
    1. JVM会先尝试执行try区块中的内容,若发生错误且与catch后面的类型相符,则执行catch区块中的代码。
    2. 若想在捕捉(catch)错误之后恢复程序正常执行流程,可以将try、catch区块放入while循环中。
    3. 由于JVM是尝试执行try区块,所以一旦发生错误被捕捉,那么这一次的try区块就相当于没有执行。
    • 异常继承架构
    1. 编译程序认为调用
      System.in.read()
      时可能发生错误,故要求一定要在程序中明确处理错误,解决方法如下:
    try{
        int ch =System.in.read();
    }catch(java.io.IOException ex){
        ex.printStackTrace();
    }
    
    1. 设计错误对象都继承自java.lang.Throwable类,他有两个子类:java.lang.Error类与java.lang.Exception类。
    2. Error与其子类代表严重系统错误,如硬件层面错误、JVM错误或内存不足等问题。当Error出现时,基本是无力回天的。
    3. 若某个方法声明会抛出Throwable或子类实例,只要不属于~Error java.lang.RuntimeException或其子类实例,你就必须明确使用try、catch~语法处理,或者使用throws声明这个方法会抛出异常,否则编译会失败。
    4. 受检异常:API客户端必须明确处理错误。
    5. 非受检异常:编译程序不强迫API客户端在语法上进行处理,但是有可能会引发错误。
    6. 规则表示式:String的matches()方法设定d*,用于检查字符串中的字符是不是数字,是则返回ture。
    static int nextInt(){
        String input =console.next();
        while(!input.matches(\d*)){
            System.out.println(“请输入数字”);
            input =console.next();
        }
        return Integer.parseInt(input);
    }
    
    1. 若父类异常对象在子类异常对象前被catch,那么catch子类异常对象的区块将永远不会被执行。
    2. 多重捕捉语法。注意catch括号中列出的异常不得有继承关系,否则编译错误。JDK7后,以下两段代码相等。
    try{
        do something...
    }catch(IOException e){
        e.printStackTrace();
    }catch(InterruptedException e){
        e.printStackTrace();
    }catch(ClassCastException e){
        e.printStackTrace();
    }
    
    try{
        do something...
    }catch(IOException | InterruptedException | ClassCastException e){
        e.printStackTrace();
    }
    
    • 如若使用继承时,父类某个方法声明throws某些异常,子类重新定义该方法时:
    1. 可以不声明throws任何异常。
    2. 可以throws父类该方法中声明的某些异常。
    3. 可以throws父类该方法中声明异常的子类。
    4. 不可以throws父类方法中未声明的其他异常。
    5. 不可以throws父类方法中声明异常的父类。
    • java.lang.AutoCloseable在try括号中,越后面撰写的对象资源会越早关闭。

    第九章

    • 具有索引的List
    1. ArrayList一般在线性结构时使用。
    2. LinkedList一般在链接结构时使用。
    • 内容不重复的set顾名思义,内容不重复,set是一个用来找不重复的接口。

    教材学习中的问题和解决过程

    上周考试错题总结

    • 填空:面向对象中,设计经验可以用(设计模式)表达
    • 填空:”Hello”.charAt(1) 的值是(‘e’)
    • 判断:Math中的abs()方法可以Override.(X)

    结对及互评

    代码量仍有不足,下周可以考虑多敲些代码

    其他(感悟、思考等,可选)

    • 看书看到一处不懂,接着看,发现知识联系的很紧密,一个一个的小土堆就会积成一座大山,让人望而却步。
    • 这两章都是陌生的东西,要想弄懂各种具体事例,前几章的基础很重要。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 10/10 1/1 10/20 简单了解了jdk,认识了Java语言学习的复杂性
    第二周 70/100 1/1 18/25
    第三周 150/200 1/1 14/20
    第四周 200/300 1/1 15/20
    第五周 200/300 1/1 15/20
    • 计划学习时间:20小时

    • 实际学习时间:15小时

    • 改进情况:

    提高了有限学习时间内的效率

    参考资料

  • 相关阅读:
    CF1580B Mathematics Curriculum
    [机房测试]变异大老鼠
    http_缓存
    UDP_概述
    记录: webAssembly 延申
    Event
    NetWork_timeLine
    基于Typora的Latex代码书写并移植到word中
    ZooKeeper学习总结
    HBase学习总结
  • 原文地址:https://www.cnblogs.com/tyn5304/p/6624266.html
Copyright © 2020-2023  润新知