得物java面试经验,来了,听说你在找SpringBoot整合案例

Java 中,异常处理机制分为 声明异常、抛出异常和捕获异常,根据异常的情况,可以对异常进行不同处理:

声明异常

对于知道如何进行处理的异常,一般要进行捕获,但此时不知道如何将处理的异常继续传递下去,可以通过在方法签名中使用 throws 来声明可能抛出的异常,有如下两点需要注意:

  1. 非受检异常(Error、RuntimeException 及其子类) 不能使用 throws 关键字来声明要抛出的异常;

  2. 一个方法出现编译时异常,就需要 try...catch/throws 进行处理,否则会导致编译失败

抛出异常

一旦觉得某些异常无法处理,但同时又不用我们进行处理,那我们就可以将其抛出。一般是使用 throw 在方法内部抛出一个 Throwable 类型的异常。

捕获异常

程序在运行前一般不会报错,但是运行后可能出现某些未知错误,如果不想直接抛出给上一级处理,那我们就需要通过 try...catch... 的形式对异常进行捕获,然后根据不同的情况来进行相应处理。

异常常见面试题


Error 和 Exception 的区别?

Exception 类的异常能够在程序中进行捕获并处理,遇到该类异常,应该进行处理,从而使程序能够继续正常运行;

Error 类的错误一般是虚拟机相关错误,如系统崩溃、内存不足、堆栈溢出等,编译器不会检测这类错误。我们也不会对这类错误进行捕获,一旦发生,一般都会导致程序崩溃无法恢复;

运行时异常和受检异常的区别?

运行时异常包括 RuntimeException 及其子类,表示 JVM 运行期间可能出现的异常,不会被 Java 编译器检查。

而受检异常是除开 RuntimeException 及其子类之外的其他 Exception,会被 Java 编译器检查。

两者的 区别 在于:是否需要调用者必须处理该异常,如果必须处理,则一般使用受检异常,否则一般选择非受检异常(RuntimeException)

throw 和 throws 的区别?

  • throw:用于在方法内部抛出异常对象
  1. throw 用在方法体内,表示抛出异常,由方法体内的语句处理;

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

  • throws:用于在方法签名上声明该方法所要抛出的异常
  1. throws 语句使用在方法声明后,表示若抛出异常,则由该方法的调用者来进行异常的处理;

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

  3. throws 表示出现异常的一种可能性,并非一定发生该种异常;

final、finally、finallize 的区别?

final 用于修饰类、方法、变量,修饰类时表示类不能被继承;修饰方法时表示方法不能别重写,但是能够被重载;修饰变量时表示该变量是一个常量无法被重写赋值;

finally 一般作用于 try...catch 代码块,处理异常时,通常将必须要执行的代码放在 finally 代码块中,表示无论是否出现异常,此代码块均执行,一般用来存放一些关闭资源的代码;

finallize 是一个方法,属于 Object 类,Java 允许用 finallize() 方法在垃圾回收器将对象从内存中清除前做一些必要的清理工作;

常见的 RuntimeException 异常?

  • ClassCastException

  • IndexOutOfBoundsException

  • NullPointerException

  • ArrayStoreException

  • BufferOverFlowException

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
img

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

中高级Java开发面试高频考点题笔记300道.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

架构进阶面试专题及架构学习笔记脑图

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

Java架构进阶学习视频分享

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

IGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

  • 59
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值