周题5

作者: blueblue_c41a | 来源:发表于2018-11-23 10:38 被阅读0次

    41、Java中异常分为哪两种?说几个常见的编译时异常类?
    42、异常的处理机制有几种?如何自定义一个异常?
    43、在异常捕捉时,如果发生异常,那么try.catch.finally块外的return语句会执行吗?try、catch、finally是必须要存在的吗?
    44、thow与thorws区别
    45、Error与Exception区别?
    46、Log4j日志有几个级别?使用Log4j对程序有影响吗?
    47、创建对象的方式有哪几种?哪种效率更高?
    48、Java中集合框架的有几个?Collection接口下有那些集合框架?分别有什么特点?
    49、ArrayList与LinkedList有什么区别?Array与ArrayList有什么不一样?
    50、详解Java中的集合框架

    41、Java中异常分为哪两种?说几个常见的编译时异常类?

    • 编译时异常、运行时异常

    • 常见的编译时异常类:
      NullPointerException:空指针异常
      ArrayIndexOutOfBoundsException:数组下标越界
      NumberFormatException:数字转换异常
      IllegalArgumentException:参数不匹配异常
      InstantiationException:对象初始化异常
      ArithmeticException:算术异常

    42、异常的处理机制有几种?如何自定义一个异常?

    • 异常的处理机制:
      异常捕捉:try…catch…finally
      异常抛出:throws

    • 自定义一个异常:
      继承一个异常类,通常是RumtimeException或者Exception

    43、在异常捕捉时,如果发生异常,那么try.catch.finally块外的return语句会执行吗?try、catch、finally是必须要存在的吗?

    • 会执行,如果有finally,在finally之后被执行,如果没有finally,在catch之后被执行

    • try块必须存在,catch和finally可以不存在,但不能同时不存在

    44、thow与thorws区别

    thow throws
    用在方法体内,跟的是异常对象名 用在方法声明后面,跟的是异常类名
    只能抛出一个异常对象名 可以跟多个异常类名,用逗号隔开
    表示抛出异常,由方法体内的语句处理 表示抛出异常,由该方法的调用者来处理
    执行throw则一定抛出了某种异常 throws表示出现异常的一种可能性,并不一定会发生这些异常

    45、Error与Exception区别?

    Error Exception
    是java错误处理机制的一部分 是java错误处理机制的一部分
    继承了Throwable类 继承了Throwable类
    表示系统错误,不能通过程序来进行错误处理 表示的异常,异常可以通过程序来捕捉,或者优化程序来避免。

    46、Log4j日志有几个级别?使用Log4j对程序有影响吗?

    • 由低到高:debug、info、wran、error

    • 有,log4j是用来日志记录的,记录一些关键敏感的信息,通常会将日志记录到本地文件或者数据库中。记录在本地文件中,会有频繁的io操作,会耗费一些系统资源。记录在数据库中,会频繁地操作数据库表,对系统性能也有一定的影响。但是为了程序安全以及数据的恢复或者bug的跟踪,这点资源消耗是可以承受的。

    47、创建对象的方式有哪几种?哪种效率更高?

    • 两种:new,Java反射

    • 通过new创建对象的效率比较高。通过反射时,先找查找类资源,使用类加载器创建,过程比较繁琐,所以效率较低

    48、Java中集合框架的有几个?Collection接口下有那些集合框架?分别有什么特点

    • Collection、Map。

    • List:线性表:顺序存储、可以有重复值。

    • Set:无序集合: 无须存储、不能有重复值。

    49、ArrayList与LinkedList有什么区别?Array与ArrayList有什么不一样?

    ArrayList LinkedList
    实现了List接口 实现了List接口
    线性表,底层是使用数组实现的 双向链表
    在尾端插入和访问数据时效率较高 在中间插入或者头部插入时效率较高,在访问数据时效率较低

    Array与ArrayList都是用来存储数据的集合。ArrayList底层是使用数组实现的,但是ArrayList对数组进行了封装和功能扩展,拥有许多原生数组没有的一些功能。我们可以理解成ArrayList是Array的一个升级版。

    50、详解Java中的集合框架

    • 定义:

      Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象。

    • 作用:

      集合可以:

      1、在类的内部,对数据进行组织;

      2、简单而快速的搜索大数量的条目;

      3、有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除元素;

      4、有的集合接口,提供了映射关系,可以通过关键字(key)快速的查找到对应的唯一对象,而这个关键字可以是任意类型。

    • 与数组的对比:

      1、数组的长度固定,集合长度可变;

      2、数组只能通过下标访问元素,下标类型只能是数字型,而有的集合可以通过任意类型查找所映射的具体对象。

    • Java集合框架的体系结构

      image.png

    Collection接口

    1、是List、Set和Queue接口的父接口;

    2、定义了可用于操作List、Set和Queue的方法——增删改查;

    • List接口及其实现类——ArrayList

      1、 List(序列),元素有序,并且可重复;

      2、List可以精确控制元素的插入位置,或删除指定位置的元素;

      3、ArrayList——数组序列,是List的一个重要实现类;

      4、ArrayList底层是由数组实现的

      泛型集合中,不能添加泛型规定的类型及其子类型以外的对象,否则会报错。

      泛型集合中的限定类型,不能使用基本类型,必须用基本类型的包装类。

    image
    • Set接口及其实现类——HashSet

      1、Set(集),元素无序,并且不可以重复;

      2、HashSet——哈希集,是Set的一个重要实现类;

    Map接口

    1、Map提供了一种映射关系,元素是以键值对(key-value)的形式存储的,能根据key快速查找value;

    2、Map中的键值对以Entry类型的对象实例形式存在;

    3、key值不能重复,value值可以重复;

    4、key对value是多(一)对一的关系;

    5、Map接口提供了返回key值集合、value值集合、Entry值集合,的方法;

    6、Map支持泛型,形式如:Map<K,V>

    • HashMap类

      1、HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;

      2、HashMap中的Entry对象是无序排列的;

      3、Key值和value值都可以为null,但是一个HashMap只能有一个Key值为null的映射(Key值不可重复);

    相关文章

      网友评论

        本文标题:周题5

        本文链接:https://www.haomeiwen.com/subject/kbmdqqtx.html