1. 异常概念_分类
1) 什么叫异常?
答:异常(Expection)就是在程序运行过程中所发生的不正常的事件,它会中断正在运行的程序
2) 请简述异常的分类?
答:异常分为Error(仅靠程序本身无法恢复的严重错误)和由Java应用程序 抛出和处理的非严重错误.
非严重错误又分为Checked异常(程序必须处理该异常)和运行异常(不要求程序必须作出处理).
2. 异常处理方式之一_捕获异常
(1) 捕获异常所使用的关键字有哪些?
答:关键字有:try,catch,finally
(2) try-catch-finally有几种结合形式,每种组合形式的执行顺序是什么?
答:有:1)try-catch 正常情况:直接执行try-catch块后的代码段
异常情况,异常出现的类型与捕获的类型匹配
异常情况,异常出现的类型与捕获的类型不匹配
2)try-finally finally 是无论是否产生异常,都执行的代码,但是有一种情况 finally 不执行,即退出 Java 虚拟机。
(3) 3)try-catch-finallya) 正常情况:执行 try-finally
异常情况:类型相匹配,执行 try-catch-finally
异常情况:类型不相匹配,执行 try-finally
如果在 catch 中存在 return 语句,则先执行完 finally 语句再回头执 行 return 语句
3. 异常处理方式之二_声明异常
(1) 继承关系中如何声明异常?
如果父类中方法声明了exception类型的异常,那么子类在重写时可以声明也可以不声明.但如果要调用super关键字父类方法时,要求必须对异常进行处理
(2) throw与throws的区别是什么?
答:(1) throws 用于声明方法可能会产生的异常类型
throw 手动抛出异常对象
(2) throws 写在方法名称后面
throw 用于写在方法里
4. 常见简单异常的解决办法
(1) 请你列举出五个常见的运行时异常?
答:
(2) 请你列举出五个常见的检查时异常?
答:SQLException
IOException
ParseException
5. 自定义异常
(3) 为什么需要自定义异常?
答:因为在程序中,可能会遇到任何标准异常都没有充分的描述请问题,这是可以自己创建异常类
(4) 自定义异常的步骤是什么?
答:1.继承Exception或RuntimeException
1. 2.定义构造方法
2. 3.使用异常
6. 包装类的基本用法
(1) 为什么需要包装类?
答:Java并不是纯面向对象的语言,因为Java的基本数据类型却不是面向对象的.而我们实际使用中经常需要将基本数据类型转化成对象,便于操作.
(2) 包装类的继承关系是什么?
答:
7. 自动装箱和拆箱
(3) 请你简述什么叫自动装箱?什么叫自动拆箱?
答:auto-boxing基本类型自动的封装到与它相同的类型的包装类中
Unboxing包装对象自动转成基本数据类型
(4) 请你简述Integer类中的内部类IntegerCache的作用?
答:Cache 为[-128,127],IntegerCache 有一个静态的 Integer 数组,在类加 载时就将-128 到 127 的 Integer 对象创建了,并保存在 cache 数组中,一旦程序调用 valueOf 方法,如果取的值是在-128 到 127 之间就直接在 cache 缓存数组中去取Integer 对象,超出范围就 new 一个对象。
8. String类底层分析_JDK源码分析
(5) String类的底层数据结构是什么?
答:String 的底层数据结构是 char 类型的数组String 的相应方法的实现 实际上就是对数组的一个操作
(6) 为什么String类的值只能被共享不能被更改?
答:String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。
9. StringBuilder,Stringbuffer用法_jdk底层源码分析
(7) StringBuffer与StringBuilder的异同点是什么?
答:StringBuilder:效率高,安全性低;
StringBuffer:效率低,安全性高;
(8) String与StringBuffer的异同点是什么?
答:相同点:都代表字符串的类
不同点:String不可更改效率低,StringBuffer效率高