异常&反射面试题

 1.error和exception有什么区别?

 2.说出5个常见的RuntimeException?

1.空指针异常;原因:调用了未经初始化的对象或者是不存在的对象

2.字符串转换为数字异常;出现的原因:字符型数据中包含非数字型字符

3.数组角标越绝异常,常见于操作数组对象时发生

4.方法传递错误

5.数据类型转换异常

3.throw和throws的区别?

throw:

1.throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。

2.throw是具体向外抛出异常的动作,所以他抛出的是一个异常实例,执行throw一定是排除了某种异常。

throws:

  1.throws语句使用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理

 2.throws主要是声明这个方法会抛出某种类型的异常,让他的使用者要知道需要捕获的异常的类型。

3.throws表示出现异常的一种可能性,并不一定会发生这种异常。

4.如何自定义异常

继承Exception是检查性异常,继承RuntimeException是非检查性异常,一般要复写两个构造方法,用throw抛出新异常。

编写一个类, 继承Exception,并重写一参构造方法 即可完成自定义受检异常类型。 
编写一个类, 继承RuntimeExcepion,并重写一参构造方法 即可完成自定义运行时异常类型。
 例如: 
class MyException extends Exception{ // 继承Exception,表示一个自定义异常类
 public MyException(String msg){ super(msg) ; // 调用Exception中有一个参数的构造
 } 
};
 自定义异常可以做很多事情, 例如:
 class MyException extends Exception{ 
public MyException(String msg){ 
super(msg) ; //在这里给维护人员发短信或邮件, 告知程序出现了BUG。
 }
 };

5.首先处理异常主要由有两种方式:一种 try catch ,一种是throws。

1 try catch:

try{}中放入可能发生异常的代码。catch()中放入对捕获 到异常之后的处理

2.throw throws:

throw是语句抛出异常,出现于函数内部用来抛出一个具体的异常实例,throw被执行后面的语句不起作用,直接转入异常处理阶段。

throws是函数方法抛出异常,一般写在方法的头部,抛出异常,给方法的调用者进行解决。

6.反射机制优缺点?

优点:运行期类型的判断,动态加载类,提高代码灵活度。

缺点:性能瓶颈:反射相当于一系列解释操作,通知JVM要做的事,性能比直接的 java代码要慢很多。

7.什么地方用到反射机制?

1JDBC中,利用反射动态加载了数据库驱动程序。

2web服务器中利用反射调用了Sevlet的服务方法。

3开发工具利用动态刨析对象的类型与结构,动态提示对象的属性和方法。

4很多框架都用到反射机制,注入属性,调用方法 。

8.java反射机制的作用

在运行时判定任意一个对象所属的类

在运行时构造任意一个类的对象

在运行时判定任意一个类所具有的成员变量和方法

在运行时调用任意一个对象

生成动态代理

9.Java反射机制类

java.lang.Class;//类
java.lang.reflect.Constructor;//构造⽅法
java.lang.reflect.Field; //类的成员变量 
java.lang.reflect.Method;//类的⽅法
java.lang.reflect.Modifier;//访问权限

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值