JAVA面试题(20)

    本文首发于cartoon的博客
    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/interview-question/java-interview-question20/

  • try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
    • finally会早于return语句执行,假如finally含有return语句,则会执行finally语句的return,catch中的return会被忽略
  • 常见的异常类有哪些?
    • 参考博客:http://www.cnblogs.com/ITtangtang/archive/2012/04/22/2465382.html
    • JAVA异常类都处于java.lang包中
      • 系统级
        • IllegalAccessException:权限没有达到系统要求
        • OutOfMemoryException:内存不足
      • 类级
        • NoClassDefFoundException:类定义不存在
        • ClassNotFoundException:指定类不存在,程序试图引用不存在类时抛出
      • 对象级
        • NullPointerException:空指针异常(相信很多人都经历过),调用未初始化或不存在对象时抛出
        • ClassCastException:对象转换异常,多出现于向下转型
        • NoSuchFieldException:域不存在
        • InstantiationException:实例化异常
        • CloneNotSupportedException:不允许克隆
      • 方法级
        • IllegalArgumentException:参数传递错误
        • NoSuchMethodException:方法不存在
      • 操作级
        • 数字操作
          • NumberFormatException:字符串转换数字异常,当试图将不符合数
          • ArithmeticException:算术运算异常
        • 数组
          • IndexOutOfBoundsException:数组越界,访问索引超出数组长度时抛出
          • ArrayStoreException:数组存储异常
        • IO
          • FileNotFoundException:未找到文件异常
          • EOFException:文件或流终止异常
          • IOException:IO异常
        • 数据库
          • SQLException:数据库操作异常
        • 线程
          • InterruptedException:线程被终止异常
  • HTTP 响应码 301 和 302 代表的是什么?有什么区别?
    • 参考:菜鸟教程
    • 301:永久移动。请求资源被永久移动到新url
    • 302:临时移动。请求资源暂时被移动,客户端保持原有url
    • 区别
      • url不一致。301为新url,302为原url
      • 资源是否永远被移动。301为永远被移动,302为暂时被移动
  • Forward 和 Redirect 的区别?
    • Forward为转发到新页面,由客户端决定,url不变
    • Redirect为重定向新页面,由服务器端决定,url改变