热点面试题目—Java异常

记录一次高级JAVA开发面试题目 记录一次面试高级java开发的过程,问了有十几个问题,回忆一下记录下来,总结经验,以供参考。 阅读详情

在面试时Java异常常被问到,很多人做足了准备但在实际面试中,仍然不能很准确的回答Java异常的问题。到底面试官会怎样提问?针对你的回答又会怎样深挖呢?今天小编就通过一个面试场景模拟,来帮助猿猿们更好的理解Java异常,搞定面试官。



面试官题目


请聊一下,你对java异常的理解?区分一下运行时异常和一般异常有何异同?你在平时工作中遇到的异常类有哪些,详细说明一下这些异常是怎么产生的?



考点分析


根据这个题目,我们可以把它拆分为三个小问题,来解答;主要考察来我们对异常的理解,以及对java基础的深度研究,比如题中说到你工作中遇到的异常有哪些,这就是对你进行知识深度的挖掘;题中也提到这些异常产生的原因,也是来进一步挖掘你在哪些方向研究的比较深入。


回答


0,Java异常的理解?

异常主要处理编译期不能捕获的错误。出现问题时能继续顺利执行下去,而不导致程序终止。确保程序的健壮性。

处理过程:产生异常状态时,如果当前的context不具备处理当前异常的能力,将在heap上new出来一个异常对象,停止当前的执行路线,把产生的异常对象抛给更高层的context。

Throwable:异常类;Error :系统异常;不能恢复;Exception :普通异常;可恢复。

利用try/catch/finally来处理异常。

在你会到了上面的东西,有的面试官会问你什么时候用到finally呢?你应该这样回答,某些事物(除内存外)在异常处理完后需要恢复到原始状态,如:开启的文件,网络连接等。



1,运行时异常和一般异常有何异同?


异常分为runtime exception和checked exception。

checked exception:java编译器强制要求catch此类异常,如io异常、sql异常。

runtime exception:不需要强制性处理,一旦出现异常,交由虚拟机接管。


2,遇到的异常类有哪些?产生的原因?


NullPointerException:空指针。

ArrayIndexOutOfBoundsException:数组越界。

IllegalArgumentException:参数非法。

BufferOverflowException:缓存溢出。

ClassNotFoundException:在编译时无法找到指定的类。

ClassCastException:类型强转。

ExceptionInInitializerError:静态初始值或静态变量初始值期间发生异常。

UnsatisfiedLinkError:JNI加载dll或者so文件时未找到。

NoClassDefFoundError:在编译时能找到合适的类,而在运行时不能找到合适的类。

上面说了这么多常见的异常类,下面咱们详细的聊一下OutOfMemoryError(内存溢出)这个异常。


产生的原因:

1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据。

2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。,3,

3.代码中存在死循环或循环产生过多重复的对象实体。

4.使用的第三方软件中的BUG。

5.启动参数内存值设定的过小。


重点排查以下几点:


1.检查代码中是否有死循环或递归调用。

2.检查是否有大循环重复产生新对象实体。

3.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。

4.检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

5.检查对大文件的读取是否采用类nio的方式。


总结


通过上面的题目,我们可以清楚的发现,对于面试来说,对于一个问题,面试官一定会深挖,来看看你对知识的了解达到一个什么样的地步。因此,在平时的学习中,我们一定要深入研究每一个基础知识点,它并不是你认为的那么简单。

java高级工程师面试问题大全及答案大全java面试机试题目 OSI七层模型都是什么举例网络协议,都在哪个层TCP UDP区别TCP如何实现可靠连接Time_Wait中2*msl 为什么如果TCP突然接收方故障 会发生什么HTTP状态码 含义,503 504,200GET POST区别一个url从输入到访问经过了哪些过程说一说TCP三次握手和四次挥手看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面。 阅读详情

相关推荐

水文预报新手别怕!用Matlab 18小时搞定马斯京根法参数K和x(附完整代码)

本文详细介绍了如何使用Matlab在18小时内快速掌握水文预报中的马斯京根法参数K和x的求解方法。通过完整的代码示例和分步解析,帮助新手从理论到实践快速跨越,解决传统手工试算耗时耗力的问题,提升水文预报的效率和精度。

weixin_42573113的博客 259

2023 年最新、最全、最实用的 Java 岗面试真题,已收录 GitHub

小册内容包括 Java 基础,JVM,多线程 &并发,Spring,MyBatis,SpringBoot,MySQL,SpringCloud,Dubbo,Nginx,MQ,数据结构与算法,LinuxZookeeper,Redis,分布式,网络,设计模式,maven,ElasticSearch,tomcat,Git,软实力等诸多技术栈。

m0_59595915的博客 150

CMU开源NavRL:深度强化学习如何破解无人机动态避障难题?

卡内基梅隆大学(CMU)开源了NavRL框架,利用深度强化学习解决无人机在复杂环境中的动态避障难题。该框架通过创新的状态表示、多目标奖励函数设计以及独立的安全屏障机制,使无人机能够通过仿真训练自主学会灵活、安全的导航策略,并成功实现从仿真到真实环境的零样本迁移。

hope8的博客 721

Java 热点面试题(快速复习,正在更新)

自己在准备Java面试/复习的时候,整理了一些高频面试题,如有错误欢迎指正哦。

记录学习的点点滴滴 858

AI 代码赋能短视频带货:服装及多赛道批量内容生产全流程实操

本文聚焦 AI 技术在短视频带货领域的落地应用,以服装赛道为核心,延伸至花卉绿植、图书、茶具等热门领域,系统拆解 AI 工具在选品、素材处理、视频制作(含动态效果、场景搭建)、运营优化等环节的实操方法。针对从业者普遍面临的 “内容生产低效”“无专业技术难出优质视频”“流量运营踩坑” 等痛点,提供从基础工具使用到高阶视频制作的全流程技术方案,助力相关从业者借助 AI 实现批量、高效的短视频内容产出。

m0_67958922的博客 3085

mojoPortal 路径穿越漏洞复现(CVE-2025-28367)(附脚本)

 在 mojoPortal CMS 版本 <=2.9.0.1 中发现了一个导致 ViewState 反序列化的目录遍历漏洞。通过利用此问题,未经身份验证的攻击者可以泄露 Web 根目录中的敏感文件,包括应用程序的文件。此配置文件包含用于验证和解密 ViewState 数据的文件。知道此密钥后,网络攻击者可以构建恶意 ViewState 有效负载,从而导致在底层服务器上执行远程代码。(CVE-2025-28367)

iSee857的博客 501

Java基础知识面试题

一、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 二、== 和 equals 的区别是什么? 1、对于基本类型,==比较的是值; 2、对于引用类型,==比较的是地址; 3、equals不能用于基本类型的比较; 4、如果

学Java,找哪吒 6万+

Codev与Zemax相互转化

Codev与Zemax相互转化

weixin_72050316的博客 1046

10万字208道Java经典面试题总结(附答案)

1、JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含JRE,JDK中有一个名为jre的目录,里面包含两个文件夹bin和lib,bin就是JVM,lib就是JVM工作所需要的类库。 2、== 和 equals 的区别是什么? 对于基本类型,==比较的是值; 对于引用类型,==比较的是地址; equals不能用于基本类型的比较; 如果没有重写equa

学Java,找哪吒 106万+

突破限制:巧用Azure OpenAI,畅玩Gemini模型

通过 Azure OpenAI 服务这一巧妙的途径,间接调用 Gemini 模型,打破网络限制的壁垒。本文将详细介绍这一方法,无论你是人工智能领域的新手,还是经验丰富的开发者,都能从中获取实用的技巧,轻松开启 Gemini 模型的探索之旅

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 182

学Simulink--基础微电网场景实例:基于Simulink的微电网黑启动过程建模与仿真

黑启动(Black Start)是指在全系统停电(无电压、无频率)状态下,微电网依靠内部电源自主恢复供电的能力。🌩️典型场景主网长时间故障自然灾害导致区域停电计划检修后重启❗挑战无参考电压/频率 → 逆变器无法锁相负荷逐级投入 → 需避免过流/过压多电源协调 → 防止环流或失步✅黑启动成功标准在30 秒内恢复关键负荷供电电压/频率稳定在范围内无设备损坏或保护跳闸🎯本文目标:手把手教你使用 Simulink + Simscape + Stateflow 搭建。

amy_mhd的博客 201

最近找工作,搜刮了一些Java面试题,涨涨知识

Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的...

chuyijun0137的博客 534

【GlobalMapper精品教程】006:Excel表格(.xls)或文本(.txt .csv)坐标文件生成矢量点

原始的坐标数据如下图所示,其中坐标为Lat经度,LNG纬度,均为十进制度的形式,一般软件都支持十进制度的格式,如果不支持,你可以尝试使用度分秒的形式,图中的DDMMSS-LAT为纬度,DDMMSS-LNG为经度。打开globalmapper软件,点击【打开数据文件】,选择坐标数据文件(案例中的数据位配套实验数据包中的data006.rar)气象台站分布点坐标.xls。选择坐标系:本案例数据采用的是经纬度,因此选择Geographic(Latitude/Longitude),基准选择WGS84,点击确定。

智慧空间实验室 2570

超详细的Java面试题汇总(基础篇+框架篇)

Java面试题汇总-基础篇 1.面向对象是什么? 答:面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),Java是一个支持并发、基于类和面向对象的计算机编程语言 面向对象软件开发的优点:代码开发模块化,更易维护和修改;代码复用性强;增强代码的可靠性和灵活性;增加代码的可读性。 2、String 是最基本的数据类型吗? 答:不是。Java中的基...

qq_24047659的博客 782

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

请列出50个java热点面试题目

这些题目涵盖了Java的多个方面,旨在考察应聘者对Java技术的掌握程度和实践经验。在面试过程中,可以根据应聘者的回答情况,进一步深入探讨相关问题,以了解其技术深度和广度。

youyouxiong的博客 1112

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java 面试中 Spring 热点面试题整理:新视角新归纳​

通常,我们会使用 Maven 或 Gradle 插件,在项目的构建脚本中配置相关信息,将 Spring Boot 应用及其依赖打包成一个可执行的 JAR 文件,然后基于一个基础的 JVM Docker 镜像,将 JAR 文件复制到镜像中,并配置好启动命令,从而生成一个完整的 Spring Boot 应用 Docker 镜像。同时,在服务端也可以通过自定义过滤器,对用户输入的数据进行严格的校验和过滤,只允许合法的字符和格式通过,进一步增强应用的安全性。一、Spring 在云原生与微服务架构下的深度应用​。

2401_83384536的博客 1400

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

2024年最新Java面试热点系列概要

2024最新面试热点!从Java基础到高级及软技能,指引包括官方学习资源、并发性能优化、Spring生态、微服务云原生技术、数据库存储与设计模式,辅以代码实践、面试准备和社区参与建议

Geek_H 1171

Java线程池深度解析,从源码到面试热点

Java线程池深度解析,从源码到面试热点

ly853602的博客 1127

2024Java面试热点之深入基础知识

深入探讨Java基础,涵盖关键字、数据类型、运算符、流程控制、数组集合、类对象、继承多态、异常处理、I/O流、字符串和正则表达式,从而更好应对面试!

Geek_H 826

50个Java热点面试题及答案整理

Java是一种面向对象的编程语言,最初由Sun Microsystems于1995年发布。它被设计为具有平台无关性,即一次编写,到处运行的能力。Java具有简单、高效、健壮、安全等特点,使得它成为了广泛应用于企业级应用、移动应用、嵌入式系统等领域的主流编程语言。");这是一个简单的Java程序,它输出"Hello, World!Java语言Java语言是Java平台的核心,它定义了Java程序的语法、语义和规范。开发者使用Java语言编写程序,并通过编译器将其转换为Java字节码。

程序媛学姐的博客 1133

上海采购供应链方向Java开发者高频面试问题解析库存热点Key问题JVM调优实战

上海作为供应链金融中心,对技术人的要求是「业务理解深度」与「技术方案创新性」并重。掌握上述核心能力!!!学习教程(传送门)1、掌握。

王大师企业官方博客 1947

Java高级开发2025高频面试提问题目

Java语言特性及核心概念摘要 Java作为主流编程语言,具备平台无关性(JVM实现跨平台)、面向对象三大特性(封装、继承、多态)、自动内存管理(GC机制)和丰富的类库生态等核心特点。其基础内容包括: 数据类型:8种基本类型+引用类型 三大特性:封装(private属性+getter/setter)、继承(extends)、多态(方法重写) 关键区别:==比较地址/值,equals()比较内容;String不可变,StringBuffer/StringBuilder可变且线程安全性不同 核心机制:反射动态获

2401_89221867的博客 1547

Java热点面试题及其答案

这些问题是Java面试中常见的热点问题,涵盖了Java的基础知识和核心概念。

WangYaolove1314的博客 658

面试之java提高-杨晓峰专栏笔记

学习杨晓峰专栏的笔记,39个热门面试题的解读,分享给正在面试或即将面试的小伙伴们 1. 谈谈你对java平台的理解 Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write once, run anywhere),能够非常容易地获得跨平台能力;另外就是垃圾收集(GC, Garbage Collection), Java通过垃圾收集器(Garbage...

wjl31802的博客 3507

JAVA面试基础题目,不紧跟时代的面试题看它有什么意义?

要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。我也知道,不少候选人能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。26、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized 修饰?6、你是如何调用 wait()方法的?

老男孩的架构路 493
上一篇: 数学对象round()方法,ceil()方法,和floor()方法有什么区别
下一篇: java注释风格 与javadoc
ole_triangle_java
博客等级 码龄10年 82粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值