zoukankan      html  css  js  c++  java
  • 20145235 《Java程序设计》第5周学习总结

     

    教材学习内容总结

    8.1语法与继承架构

    • try和catch语法,如果被try{}的语句出现了catch()的问题就执行catch{}的语句。
    • 错误的对象都继承于java.long.Throwable,它又分成java.long.Error和java.long.Exception
    • Error是java程序没办法恢复的
    • 而Exception又分成不属于RunTimeException的受检异常和属于RunTimeException的非受检异常
    • 受检异常是认为调用方法的客户端有能力处理的
    • 非受检异常在执行时满足一定条件会出现,又称执行时期异常

    代码运行结果:

    异常继承架构

    • Throwable 定义了取得错误信息、堆栈追踪等方法,有两个子类:java.lang.Error 与 java.lang.Exception
    • 异常处理:程序设计本身的错误,建议使用 Exception 或其子类实例来表现,所以通常称错误处理为异常处理
    • 单就语法与继承架构上来说,如果某个方法声明会抛出 Throwable 或子类实例,只要不是属于 Error、ava.lang.RuntimeException 或其子类实例,你就必须明确使用 try、catch语法加以处理,或者用 throws 声明这个方法会抛出异常,否则会编译失败
    • 受检异常:Exception 或其子对象,但非属于 RuntimeException 或其子对象,称为受检异常
    • 执行期异常(非受检异常):因为编译程序不会强迫一定得在语法上加以处理,亦称为非受检异常
    • 规则表达式:String 的 matches() 方法中设定了 "d*",这是规则表示式,表示检查字符串中的字符是不是数字,若是则 matches() 返回 true
    • 如果父类异常对象在子类异常对象前被捕捉,则 catch 子类异常对象的区块将永远不不会被执行

    9.1 使用 Collection 收集对象

    • 认识 collection 架构
    • 收集对象的行为,像是新增对象的 add()方法、移除对象的 remove()方法等,都是定义在 java.util.Collection 中
    • 既然可以收集对象,也要能逐一取得对象,这就是 java.lang.Iterable 定义的行为,它定义了 iterator() 方法返回 java.lang.Iterable 操作对象,可以让你逐一取得收集的对象
    • 收集对象的共同行为定义在 Collection 中,然而收集对象会有不同的需求
    • java.util.List:收集时记录每个对象的索引顺序,并可依索引取回对象
    • java.util.Set:收集的对象不重复,具有集合的行为
    • java.util.Queue:收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端
    • java.util.Deque:可对Queue的两端进行加入、移除等操作
    • java.util.ArrayList:以数组操作 List(想要收集对象时具有索引顺序,操作方法之一是使用数组)
    • List 是一种Collection,作用是收集对象,并以索引方式保留收集的对象顺序,其操作类之一是java.util.ArrayList
    • ArrayList 特性:考虑是否使用 ArrayList,就等于考虑是否要使用到数组的特性。数组在内存中会是连续的线性空间,根据索引随机存取时速度快,如果操作上有这类需求时,像是排序,就可使用
    • ArrayList,可得到较好的速度表现
    • LinkedList在操作List接口时,采用了链接(Link)结构
    • 在 SimpleLinkedList 内部使用 Node 封装新增的对象,每次 add() 新增对象之后,将会形成链状结构
    • 若收集的对象经常会有变动索引的情况,也许考虑链接方式操作的List会比较好,像是随时会有客户端登录或注销的客户端List,使用LinkedList会有比较好的效率
    • 使用 Set 接口操作对象:在收集对象的过程中若有相同的对象,则不再重复收集,若有这类需求,可以使用 Set 接口的操作对象

     

    9.2 键值对应的Map

    • 若要根据某个键来取得对应的值,可以事先利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取得值,只要用对应的键就可以迅速取得
    • 建立 Map 操作对象时,可以使用泛型语法指定键与值的类型
    • 要建立键值对应,可以使用 put() 方法,第一个自变量是键,第二个自变量是值
    • 对于 Map 而言,键不会重复,判断键是否重复是根据 hashCode() 与 equals(),所以作为键的对象必须操作 hashCode() 与 equals()。若要指定键取回对应的值,则使用 get() 方法
    • 如果想要键是有序的,可以使用 TreeMap。如果使用 TreeMap 建立键值对应,则键的部分将会排序,条件是作为键的对象必须操作 Comparable 接口,或者是在创建 TreeMap 时指定操作 Comparator 接口的对象。
    • 在java的规范中,与顺序有关的行为,通常要不对象本身是Comparable,要不就是另行指定Comparator对象告知如何排序;若要根据某个键来取得对应的值,可以事先利用java.util.Map接口的操作对象来建立键值对应数据,之后若要取得值,只要用对应的键就可以迅速取得。常用的Map操作类为java.util.HashMap与java.util.TreeMap,其继承自抽象类java.util.AbstractMap
    import java.util.*;
    
    public class MapKeyValue2
    {
        public static void main(String[] args) 
        {
            Map<String, String> map = new TreeMap<>();
            map.put("one", "一");
            map.put("two", "二");
            map.put("three", "三");
            foreach(map.entrySet());
        }
    
        static void foreach(Iterable<Map.Entry<String, String>> iterable)
        {
            for(Map.Entry<String, String> entry: iterable)
            {
                System.out.printf("(鍵 %s, 值 %s)%n", 
                        entry.getKey(), entry.getValue());
            }
        }
    }
    

    代码托管情况

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

    假期在学校学JAVA也是挺好的,虽然外面天气不错。外面的世界很精彩,但JAVA中探索新的知识也是另一番天地。春天是个充满朝气的季节,就让我们迎着春风,以全新的,积极的,充满斗志面貌去学习新的知识,不负青春年华!

  • 相关阅读:
    GoCN每日新闻(2019-10-14)
    GoCN每日新闻(2019-10-13)
    GoCN每日新闻(2019-10-12)
    GoCN每日新闻(2019-10-11)
    [xms]西软xms试算平衡报表-穿透明细报表-增加储值卡卡号列
    GoCN每日新闻(2019-10-10)
    GoCN每日新闻(2019-10-09)
    GoCN每日新闻(2019-10-08)
    GoCN每日新闻(2019-10-07)
    [golang]Golang实现高并发的调度模型---MPG模式
  • 原文地址:https://www.cnblogs.com/20145235litao/p/5350962.html
Copyright © 2011-2022 走看看