Java第十三天

来源:互联网 发布:无地自容 知乎 编辑:程序博客网 时间:2024/06/05 10:52

今天主要学习了throw、throws方法,泛型类,以及集合框架的一点内容。内容看起来比较少,但因为集合框架是重点,所以老师讲得比较细一些,主要还是做的题多。

一、throw和throws方法:

        这两个方法是处理异常的方法。是昨天异常部分没讲完的一点尾巴。

        throw是指手动抛出异常,可以在方法的任意一个位置抛出一个异常。throws是用来修饰方法的,当该方法内有throw出异常的话,一般就需要在方法名后用“throws+异常类型”来修饰方法,用来告诉调用者这个位置可能会抛出异常以及异常的类型。


二、泛型类:这个不作为本教程的重点,所以只是简单带过,没细讲。

        其实泛型还是蛮重要的,是JDK1.5的一个很重要的特性,通过类型的参数化,可以很大地提高代码的扩展性和重用性,这也是java作为面向对象编程的一个最重要的宗旨。

        除了泛型类外,还有泛型方法。基本格式为:class 类名<T>{
                                                                                              private T foo;
                                                                                              public T getFoo(){
                                                                                                     return foo;
                                                                                              }
                                                                                              public void setFoo(T foo){
                                                                                              this.foo=foo;
                                                                                              }
                                                                                         }

                                            泛型方法的基本格式为:public static <T> T/void 方法名(T t){ 方法体}


 

           要注意的是:1、泛型类型的参数是不能做运算的。因为泛型类在运行的时候,会经过系统的一个擦除的过程。所定义的所有泛型参数都会在运行时被系统擦除后变成Object类型,而Object类型是不能进行运算的。

                                   2、数组不能设置成泛型。



三、集合框架:这个一个重要的内容,重要程度和面向对象那个部分相当。不过其重要性并不体现在全部内容上,主要需要掌握的内容就是ArrayList、LinkedList和HashMap,其他内容了解即可。

        集合框架的层次架构:最顶部的一个迭代器接口Iterable(所以继承自这个接口的集合类都可以定义自己的迭代器对象用于遍历),Collection接口实现了这个迭代器接口,是集合类的一个根接口。Collection接口下又有List(有序且重复)和Set(无序且不重复)两个子接口,这两个子接口都有自己具体实现的类。Map是单独的一个接口,用于存储键值对,也有自己具体实现的子类。具体结构见下表:---Iterable
                                                                                                           ----Collection

                                                                                                                  ----List(有序且重复)

                                                                                                                        ---ArrayList

                                                                                                                        ---LinkedList

                                                                                                                 ----Set(无序不重复)
                                                                                                            ---Map(键值对)
         1、ArrayList:
              它底层是Object类型的数组,当调用无参构造方法的时候,添加第一个元素的时候,给数组开辟一个长度为10的一个Object数组。当添加的元素超过原数组大小的时候,数组会自动扩容,大小是原数组大小的1.5倍,再把原数组中的值拷贝到新数组中。
              特点: 查询效率高,但删除、添加效率比较低,因为数组要做移位操作。




LinkedList:
0 0