当前位置: 首页 > news >正文

【Java面试题】注解,异常相关知识

什么是注解

注解本身是一个继承Annotation的特殊接口,它的实例化对象是Java运行时产生的动态代理类。
我们使用反射获取注解时,获取到的是Java运行过程中通过动态代理产生的对象,动态代理对象调用自定义注解方法。最终会调用AnnotationInvocationHandler的invoke方法,该方法会从memberValues这个Map中索引出对应值。而memberValues的来源是Java常量池

注解的解析方法有哪几种

  • 编译时解析:比如@override注解,在编译时就会解析,检查方法是否重写
  • 运行时通过反射解析:比如一些框架里的注解(@Value,@Component)都是通过发射进行处理的

介绍一下异常

异常是由Throwable及其子类构成。
在这里插入图片描述
错误:是程序运行环境错误,通常是程序无法处理的严重错误,比如程序崩溃,虚拟机错误

异常:

  • 非运行时异常:编译时异常要求程序员必须提前捕获或抛出,通常是程序外部错误,比如文件不存在,类找不到。强制要求程序员提前处理异常,增强了程序的健壮性。
  • 运行时异常:包括运行时异常和错误,通常是由程序错误导致。比如空指针异常,数组访问越界等问题。不需要程序员进行提前进行捕获或声明

Java异常处理有哪些

  • throw手动抛出异常
  • throws在方法上声明抛出异常
  • try-catch 用于捕获并处理可能抛出的异常。try块中包含可能抛出异常的代码,catch块用于捕获并处理特定类型的异常。可以有多个catch块来处理不同类型的异常。
  • fianlly 无论是否有异常都会去执行的代码块
http://www.lryc.cn/news/610963.html

相关文章:

  • 二维数点问题 1
  • Dell电脑Windows系统更新后声卡驱动无法识别插线耳机问题
  • 第13届蓝桥杯Scratch_选拔赛_初级组_真题2022年1月22日
  • leetcode-python-删除链表的倒数第 N 个结点
  • Leetcode 13 java
  • Linux网络编程:TCP初体验
  • 从递归到动态规划-解码方法Ⅱ
  • 【IDEA】IntelliJ IDEA 中文官方文档全面介绍与总结
  • 以Linux为例补充内存管理基础知识
  • 2025年服务器僵尸攻防战:从AI勒索到量子免疫,构建下一代“数字抗体”
  • Linux 常用命令大全
  • 基于vscode连接服务器实现远程开发
  • vi编辑器makefile的使用以及双向链表
  • 【C++详解】⼆叉搜索树原理剖析与模拟实现、key和key/value,内含优雅的赋值运算符重载写法
  • PHP实战代码解析与应用分享:用户管理、日志,配置管理与文件操作全解析
  • PostgreSQL——插入、更新与删除数据
  • [数组]977.有序数组的平方;209.长度最小的子数组
  • 初始化列表,变量存储区域和友元变量
  • Linux系统目录分析
  • 复杂环境跌倒识别准确率↑31%!陌讯多模态算法在智慧养老的落地实践
  • 2. JS 有哪些数据类型
  • 基于Redis实现短信登录
  • 【CTF】命令注入绕过技术专题:变量比较与逻辑运算
  • Redis Stream:高性能消息队列核心原理揭秘
  • 【OSCP】- eLection 靶机学习
  • 基于ARM+FPGA光栅数据采集卡设计
  • Electron-updater + Electron-builder + IIS + NSIS + Blockmap 完整增量更新方案
  • GPT-1、GPT-2、GPT-3 的区别和联系
  • 7、Redis队列Stream和单线程及多线程模型
  • 人工智能领域、图欧科技、IMYAI智能助手2025年4月更新月报