周题5

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

  • HashMap类

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

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

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

你可能感兴趣的:(周题5)