网站首页 > java教程 正文
1.error和exception有什么区别?
error表示系统级的错误,是java运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java虚拟机抛出的。
exception 表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处理的问题。
2.说出5个常见的RuntimeException?
(1)Java.lang.NullPointerException空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象。
(2)Java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字符。
(3)Java.langIndexOutOfBoundsException数组角标越界异常,常见于操作数组对象时发生。
(4)Java.lang IllegalArgumentException方法传递参数错误。
(5)Java.lang ClassCastException数据类型转换异常。
3.throw和throws的区别?
throw:
(1)throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。
(2)throw是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行throw 一定是抛出了某种异常。
throws:
(1)@throws语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。
(2)throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。
(3)throws表示出现异常的一种可能性,并不一定会发生这种异常。
4.Java中异常分类
按照异常处理时机:
编译时异常(受控异常(CheckedException))和运行时异常(非受控异常(UnCheckedException))
5.如何自定义异常
继承Exception是检查性异常,继承RuntimeException是非检查性异常,一般要复写两个构造方法,用throw抛出新异常
如果同时有很多异常抛出,那可能就是异常链,就是一个异常引发另一个异常,另一个异常引发更多异常,一般我们会找它的原始异常来解决问题,一般会在开头或结尾, 异常可通过initCause串起来,可以通过自定义异常
6.Java中异常处理
首先处理异常主要有两种方式:一种try catch,一种是throws。
1. try catch:
- try{}中放入可能发生异常的代码。catch中放入对捕获到异常之后的处理。
2.throw throws:
- throw是语句抛出异常,出现于函数内部,用来抛出一个具体异常实例、throw被执行后面的语句不起作用,直接转入异常处理阶段。
- throws是函数方法抛出异常,一般写在方法的头部,抛出异常,给方法的调用者进行解决。
7.什么是Java反射机制?
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。
8.举例什么地方用到反射机制?
1.JDBC中、利用反射动态加载了数据库驱动程序。
2. Web服务器中利用反射调用了Sevlet的服务方法。
3.Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。
4.很多框架都用到反射机制,注入属性,调用方法,如Spring。
9.java反射机制的作用
- 在运行时判定任意一个对象所属的类
- 在运行时构造任意一个类的对象;
- 在运行时判定任意一个类所具有的成员变量和方法;
- 在运行时调用任意一个对象的方法;
- 生成动态代理;
10.Java反射机制类
java.lang.Class;//类
java.lang. reflect.Constructor;//构造方法
java.lang.reflect.Field;//类的成员变量
java.lang.reflect.Method;//类的方法
java.lang.reflect.Modifier;//访问权限
11.反射机制优缺点?
优点:运行期类型的判断,动态加载类,提高代码灵活度。
缺点:性能瓶颈:反射相当于一系列解释操作,通知JVM 要做的事情,性能比直接的java代码要慢很多。
12.利用反射创建对象?
1.通过一个全限类名创建一个对象
Class.forName(“全限类名”);例如:com.mysql.jdbc.Driver Driver类已经被加载到jvm中,并且完成了类的初始化工作就行了
类名.class;获取Class<?>clz对象
对象.getClass();
2.获取构造器对象,通过构造器new出一个对象
Clazz.getConstructor([String class]);
Con.newInstance([参数]);
3.通过class对象创建一个实例对象(就相当与new类名()无参构造器)
Cls .newInstance();
猜你喜欢
- 2024-09-12 学习java应该如何理解反射?(怎么理解java反射)
- 2024-09-12 Java反射详解(java反射总结)
- 2024-09-12 读懂框架设计的灵魂—Java 反射机制
- 2024-09-12 Java的反射机制(java的反射机制是什么)
- 2024-09-12 java反射机制Java反射机制是什么?原理详解
- 2024-09-12 聊一聊Java当中的反射机制(java的反射机制是什么)
- 2024-09-12 Java反射机制的理解(java反射机制的理解和认识)
- 2024-09-12 聊一聊Java的反射机制?(java的反射机制是什么)
- 2024-09-12 Java学习之二——JAVA反射机制(java 反射机制原理)
- 2024-09-12 实操讲解Java的反射机制,你要是再看不懂,神仙都没救了
你 发表评论:
欢迎- 05-23Java线程池:核心参数与最佳实践
- 05-23深入理解 Java 的线程池原理
- 05-23面试突击34:如何使用线程池执行定时任务?
- 05-23Java线程池核心参数调优指南:掌控并发世界的钥匙
- 05-23Java线程池:优雅管理并发任务的艺术
- 05-23一篇文章快速搞懂Java中常用的四种线程池
- 05-23Java线程池工作原理深度解读:从创建到任务执行的全过程
- 05-23一文看懂:Java线程池任务拒绝机制解析
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)