• Java常用类库面试题


    Java异常体系

    异常处理机制主要回答了三个问题

    • What:异常类型回答了什么被抛出
    • Where:异常堆栈跟踪回答了在哪抛出
    • Why:异常信息回答了为什么被抛出

    Error和Exception的区别

    • Error:程序无法处理的系统错误,编译器不做检查
    • Exception:程序可以处理的异常,捕获后可能恢复
    • 总结:前者是程序无法处理的错误,后者是可以处理的异常

    Exception下的两种异常

    • RuntimeException:不可预知的,程序应当自行避免
    • 非RuntimeException:可预知的,从编译器校验的异常,不处理无法通过编译

    从责任角度看:

    • Error属于JVM需要负担的责任
    • RuntimeException是程序应该负担的责任
    • Checked Exception可检查异常是Java编译器应该负担的责任

    常见Error以及Exception

    • RuntimeException
      • NullPointerException:空指针引用异常
      • ClassCastException:类型强制转换异常
      • IllegalArgumentException:传递非法参数异常
      • IndexOutOfBoundsException:下标越界异常
      • NumberFormatException:数字格式异常
    • 非RuntimeException
      • ClassNotFoundException:找不到指定class的异常
      • IOException:IO操作异常
    • Error
      • NoClassDefFoundError:找不到class定义的异常
      • StackOverflowError:深递归导致栈被耗尽而抛出的异常
      • OutOfMemoryError:内存溢出异常

    Collection体系

    集合之List和Set

    集合之Map

    说明:(n-1)&hash相当于hash%n

    HashMap、HashTable、ConccurentHashMap三者的区别

    • HashMap线程不安全,数组+链表+红黑树
    • HashTable线程安全,锁住整个对象(HashTable,效率低),数组+链表
    • ConccurentHashMap线程安全,CAS(没有哈希碰撞时)+同步锁(发生哈希碰撞时,同步锁锁住数组的头节点),数组+链表+红黑树
    • HashMap的key、value均可为null,而其他的两个类key,value均不可为null

    J.U.C包的分类

    • 线程执行器executor
    • 锁locks
    • 原子变量类atomic
    • 并发工具类tools
    • 并发集合collections

  • 相关阅读:
    表的管理
    子查询
    sql语句
    基本sql语句与oracle函数
    Visual C# 2008+SQL Server 2005 数据库与网络开发6.1.1 报表服务概述
    Visual C# 2008+SQL Server 2005 数据库与网络开发 5.4 小结
    Visual C# 2008+SQL Server 2005 数据库与网络开发5.3.1 日期时间函数
    Visual C# 2008+SQL Server 2005 数据库与网络开发 5.3 函数
    Visual C# 2008+SQL Server 2005 数据库与网络开发第6章 数据报表
    Visual C# 2008+SQL Server 2005 数据库与网络开发5.2.2 GROUP BY
  • 原文地址:https://www.cnblogs.com/shouyaya/p/13566172.html
Copyright © 2020-2023  润新知