首页 > 编程语言 >Java 异常面试题

Java 异常面试题

时间:2023-12-21 22:34:36浏览次数:41  
标签:lang 反射 面试题 Java 对象 异常 throw

我分析了上百份大中小厂的面经,整理了 Java 面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!
林老师带你学编程(「Java 学习+面试指南」是一份涵盖大部分 Java 程序员所需要掌握的核心知识网站,准备 Java 面试,首选《林老师带你学编程》。


error和exception有什么区别?
error表示系统级的错误,是java运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除 了退出运行外别无选择,它是Java虚拟机抛出的。
exception 表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处 理的问题。
说出5个常见的RuntimeException?
(1)Java.lang.NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对 象。
(2)Java.lang.NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字 符。
(3)Java.lang.IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生。
(4)Java.lang.IllegalArgumentException 方法传递参数错误。
(5)Java.lang.ClassCastException 数据类型转换异常。
throw和throws的区别?
throw:
(1)throw 语句用在方法体内,表示抛出异常,由方法体内的语句处理。
(2)throw 是具体向外抛出异常的动作,所以它抛出的是一个异常实例,执行 throw一定是抛出了某种异常。
throws:
(1)@throws 语句是用在方法声明后面,表示如果抛出异常,由该方法的调用者来进行异常的处理。
(2)throws 主要是声明这个方法会抛出某种类型的异常,让它的使用者要知道需要捕获的异常的类型。
(3)throws 表示出现异常的一种可能性,并不一定会发生这种异常。
Java中异常分类
按照异常处理时机分为:编译时异常(受控异常(CheckedException))和运行时异常(非受控异常(UnCheckedException))
如何自定义异常
继承Exception是检查性异常,继承RuntimeException是非检查性异常, 一般要复写两个构造方法,用 throw抛出新异常
如果同时有很多异常抛出,那可能就是异常链,就是一个异常引发另一个异常,另一个异常引发更多异 常, 一般我们会找它的原始异常来解决问题,一般会在开头或结尾,异常可通过initCause串起来,可以通过自定义异常
Java中异常处理
首先处理异常主要有两种方式:一种try catch ,一种是throws。

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

2.throw throws:

  • throw是语句抛出异常,出现于函数内部,用来抛出一个具体异常实例, throw被执行后面的语句不 起作用,直接转入异常处理阶段。
  • throws是函数方法抛出异常, 一般写在方法的头部,抛出异常,给方法的调用者进行解决。

什么是Java反射机制?
Java的反射 (reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一 个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种 动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。
举例什么地方用到反射机制?

  1. JDBC中,利用反射动态加载了数据库驱动程序。
  2. Web服务器中利用反射调用了Sevlet的服务方法。
  3. Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。 4. 很多框架都用到反射机制,注入属性,调用方法,如Spring。

java反射机制的作用

  • 在运行时判定任意一个对象所属的类
  • 在运行时构造任意一个类的对象;
  • 在运行时判定任意一个类所具有的成员变量和方法;
  • 在运行时调用任意一个对象的方法;
  • 生成动态代理;

Java反射机制类
java. lang.Class; //类
java.lang. reflect .Constructor;//构造方法
java.lang. reflect . Field; //类的成员变量
java.lang. reflect .Method;//类的方法
java.lang. reflect .Modifier;//访问权限
反射机制优缺点?
优点:运行期类型的判断,动态加载类,提高代码灵活度。
缺点:性能瓶颈:反射相当于一系列解释操作,通知 JVM 要做的事情,性能比直接的java代码要慢很 多。
利用反射创建对象?
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();

林老师带你学编程(「Java 学习+面试指南」是一份涵盖大部分 Java 程序员所需要掌握的核心知识网站,准备 Java 面试,首选《林老师带你学编程!)。

标签:lang,反射,面试题,Java,对象,异常,throw
From: https://www.cnblogs.com/wolzq/p/17920271.html

相关文章

  • Java多线程面试题
    我分析了上百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!林老师带你学编程(「Java学习+面试指南」是一份涵盖大部分Java程序员所需要掌握的核心知识......
  • Java IO面试题
    我分析了上百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!林老师带你学编程(「Java学习+面试指南」是一份涵盖大部分Java程序员所需要掌握的核心知识......
  • Java JVM面试题
    我分析了上百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!林老师带你学编程(「Java学习+面试指南」是一份涵盖大部分Java程序员所需要掌握的核心知识......
  • Java基础面试题
    我分析了上百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!林老师带你学编程(「Java学习+面试指南」是一份涵盖大部分Java程序员所需要掌握的核心知识......
  • Java之stream流的详细解析一
     2.Stream流2.1体验Stream流【理解】案例需求按照下面的要求完成集合的创建和遍历创建一个集合,存储多个字符串元素把集合中所有以"张"开头的元素存储到一个新的集合把"张"开头的集合中的长度为3的元素存储到一个新的集合遍历上一步得到的集合原始方式示例代码publicclassMyStrea......
  • Java中的page集合的遍历(取值/赋值)
    Page<FwSjJbEntity>page1=newPage<>(page,pageSize);LambdaQueryWrapper<FwSjJbEntity>queryWrapper=newLambdaQueryWrapper<>();Page<FwSjJbEntity>jbEntityPage=newPage<FwSjJbEntity>();if(name==null||name.equals......
  • Java登陆第二十七天——多种方法Servlet映射、Content-Type
    正常的Servlet映射<!--1.servlet-name用于关联映射路径1.servlet-class告诉Tomcat要实例化Servlet类的全类名2.url-patternURL路径--><servlet><servlet-name>Test1</servlet-name><servlet-c......
  • java读取yaml文件
    应用场景自动化测试中,用例数据存放在yaml文件中 数据 person.yaml---id:1name:韧age:18---id:2name:qzcsbjage:19person2.yaml----id:3name:小韧age:18-id:4name:全栈测试笔记age:19person3.yaml----id:5......
  • JavaScript 中 for-in 循环和 for-of 循环的区别和适用场景
    前言在JavaScript中,循环是一种非常常见的操作。其中,for-in循环和for-of循环是两种常用的循环方式。本文将详细介绍这两种循环方式的用法、特点以及适用场景,帮助读者更好地理解和应用它们。正文内容一、for-in循环1.用法for-in循环用于遍历对象的属性。其基本语法如下:......
  • module java.base does not export sun.net.util to unnamed module
    目录使用jdk17启动flink1.15报错:java.lang.reflect.InaccessibleObjectException:Unabletomakefieldprivatefinalbyte[]java.lang.String.valueaccessible:modulejava.basedoesnot"opensjava.lang"tounnamedmodule@6e60f18解决办法:启动参数添加add-opens......