[if !supportLists]1. [endif]异常概念_分类
什么叫异常?
异常指程序运行过程中出现的非正常现象,例如用户输入错误,除数为零,需要处理的文件不存在,数组下标越界等。
请简述异常的分类?
Java对异常进行了分类,所有异常的根类为java.lang.Throwable,Throwable
下面又派生了两个类,Error和Exception.其中Error仅靠程序本身无法恢复的严重错误。而Exception 是由java应用抛出和处理的非严重错误 在Exception中,分为checked程序必须解决该异常,Runtime类异常,是程序运行时异常,不要求程序必须做出处理。
捕获异常所使用的关键字有哪些?
try catch finally
try-catch-finally有几种结合形式,每种组合形式的执行顺序是什么?
try catch 当代码正常时,执行try和catch以后的代码,catch代码块中的代码不执行,异常情况,当异常和异常捕获的代码类型不匹配时,则程序中断执行。
try finally
Finally 是无论是否出现异常,finally中的代码都要执行,但是有一种情况除外,就是退出java虚拟机
try catch finally
正常情况下执行try和finally的中代码,
异常情况:如果异常类型匹配则执行try catch finally,如果不匹配执行try finally
如果在catch中有catch则执行完finally中的代码,最后执行return
为什么需要包装类?
我们在实际应用中经常需要将基本数据类型转化成对象以便操作为了解决这和不足,java在设计类时 为每个数据类型设计了类进行代表,这样八个基本数据类型对应的类统称为包装类
包装类的继承关系是什么?
请你简述什么叫自动装箱?什么叫自动拆箱?
自动装箱auto-boxing:基本数据类型自动的封装到与他相同的包的类中
自动拆箱:包装类对象自动转换成基本数据类型
String类的底层数据结构是什么?
String 类的底层结构char类型的数组
为什么String类的值只能被共享不能被更改?
String 更改的只是内存的指向,内容并没有改变
String为什么称为不可变字符?
因为String 为final类
StringBuffer与StringBuilder为什么称为可变字符?
因为他们的内存是通过char数组实现的,动态的改变字符串