Java企业面试题4

news2024/9/20 16:31:51

1.异常的概述

  • 什么是异常?

        指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。

  • 异常的抛出机制

        Java中把不同的异常用不同的类表示,一旦发生某种异常,就`创建该异常类型的对象`,并且抛出(throw)。
        然后程序员可以捕获(catch)到这个异常对象,并处理;如果没有捕获(catch)这个异常对象,那么这个异常对象将会导致程序终止。

  • 如何对待异常

        对于程序出现的异常,一般有两种解决方法:一是遇到错误就终止程序的运行。另一种方法是程序员在编写程序时,
        就充分考虑到各种可能发生的异常和错误,极力预防和避免。实在无法避免的,要编写相应的代码进行异常的检测、以及`异常的处理`,保证代码的`健壮性`。

2.异常的体系结构及常见的异常

java.lang.Throwable:异常体系的根父类
    |---java.lang.Error:错误。Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。
                         一般不编写针对性的代码进行处理。
               |---- StackOverflowError、OutOfMemoryError

    |---java.lang.Exception:异常。我们可以编写针对性的代码进行处理。
               |----编译时异常:(受检异常)在执行javac.exe命令时,出现的异常。
                    |----- ClassNotFoundException
                    |----- FileNotFoundException
                    |----- IOException
               |----运行时异常:(非受检异常)在执行java.exe命令时,出现的异常。
                    |---- ArrayIndexOutOfBoundsException
                    |---- NullPointerException
                    |---- ClassCastException
                    |---- NumberFormatException
                    |---- InputMismatchException
                    |---- ArithmeticException

3.说说你在开发中常见的异常都有哪些?

|----编译时异常:(受检异常)在执行javac.exe命令时,出现的异常。
    |----- ClassNotFoundException
    |----- FileNotFoundException
    |----- IOException
|----运行时异常:(非受检异常)在执行java.exe命令时,出现的异常。
    |---- ArrayIndexOutOfBoundsException
    |---- NullPointerException
    |---- ClassCastException
    |---- NumberFormatException
    |---- InputMismatchException
    |---- ArithmeticException

4.异常处理的方式

过程1:“抛”
 >"自动抛" : 程序在执行的过程当中,一旦出现异常,就会在出现异常的代码处,自动生成对应异常类的对象,并将此对象抛出。

 >"手动抛" :程序在执行的过程当中,不满足指定条件的情况下,我们主动的使用"throw + 异常类的对象"方式抛出异常对象。


过程2:“抓”
    狭义上讲:try-catch的方式捕获异常,并处理。
    广义上讲:把“抓”理解为“处理”。则此时对应着异常处理的两种方式:① try-catch-finally ② throws

5.Java的异常体系简单介绍下(网*)

Java的异常体系主要分为两大类:ErrorExceptionError指的是严重的错误,通常由JVM内部错误或者资源耗尽引起,应用程序无法处理。Exception是程序可以处理的异常情况,又分为检查型异常(checked exceptions)和非检查型异常(unchecked exceptions)。检查型异常在编译时需要显式处理,而非检查型异常则包括运行时异常(RuntimeException及其子类)和错误(Error及其子类)。

6.Java异常处理机制(*科软)

  • Java通过try、catch、finally和throw关键字来处理异常。try块中放置可能抛出异常的代码,catch块用来捕获并处理特定类型的异常,finally块无论是否捕获到异常都会执行,通常用于清理资源。throw用于手动抛出异常。

7.异常的两种类型,Error和Exception的区别(上海冠*新创、北京中**译、*度)

  • Error是严重的问题,通常与代码无关,由系统资源不足、约束失败等引起,应用程序不应尝试捕获这些错误。Exception是程序可以处理的异常情况,分为检查型异常和非检查型异常。检查型异常需要在编译时处理,非检查型异常(如运行时异常)则不需要。

8.运行时异常与一般异常有何异同?(华*思为)

  • 运行时异常(unchecked exceptions)通常由程序逻辑错误引起,如NullPointerExceptionArrayIndexOutOfBoundsException等,它们继承自RuntimeException。检查型异常(checked exceptions)则需要在编译时显式处理,如IOExceptionSQLException等。

9.说几个你常见到的异常(华油**普)

  • 常见的异常包括NullPointerExceptionArrayIndexOutOfBoundsExceptionClassCastExceptionIOExceptionSQLException等。

10.说说final、finally、finalize的区别

  • final可以用来修饰类、方法和变量。被final修饰的类不能被继承,方法不能被重写,变量(成员变量或局部变量)则不能被重新赋值。
  • finally是异常处理的一部分,与try-catch配合使用,无论是否捕获到异常,finally块中的代码都会执行。
  • finalize是Object类的一个方法,在垃圾收集器执行时会调用被回收对象的finalize()方法。

11.如果不使用try-catch,程序出现异常会如何?

  • 如果不使用try-catch处理异常,当异常发生时,程序会立即终止,并打印出异常的堆栈跟踪信息。

12.try ... catch捕捉的是什么异常?

  • try-catch可以捕捉Exception及其子类的实例。具体捕捉哪个异常类型,由catch块中声明的异常类型决定。

13.如果执行finally代码块之前方法返回了结果或者jvm退出了,这时finally块中的代码还会执行吗?(恒*电子)

  • 是的,finally块中的代码总会被执行,即使在方法返回之前或JVM退出时。

14.在try语句中有return语句,最后写finally语句,finally语句中的code会不会执行?何时执行?如果执行是在return前还是后(拓*思、华**为)

  • finally块中的代码会在return之前执行。即使try块中有return语句,控制权也会传递给finally块执行其中的代码。

15.捕获异常在catch块里一定会进入finally吗?catch里能return吗?catch里return还会进finally吗?在try里return是什么情况?(*蓝)

  • catch块之后总是会进入finally块。
  • catch块中可以有return语句。
  • 如果catch块中有return语句,在执行return之前会先进入finally块。
  • 在try块中的return会在执行前先进入finally块。

16.throw和throws的区别?(北京亿**方、北京新*阳光)

  • throw是用来抛出一个具体的异常实例。
  • throws用来声明一个方法可能会抛出哪些异常类型。

17.如何自定义一个异常?

  • Exception或RuntimeException等,并根据需要添加构造函数和其他成员方法。自定义异常应该提供足够的信息以帮助诊断问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2149413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

25届计算机专业毕设选题推荐-基于python的二手电子设备交易平台【源码+文档+讲解】

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的二手电子设备交…

【渗透测试】——VulnHub靶机渗透实战 | HA:Joker

📖 前言:Vulnhub 是一个漏洞靶场平台,里面含有大量的靶场镜像,只需要下载虚拟机镜像,导入 VMWare 或者 VirtualBox 即可启动靶场。本文将从环境搭建、端口扫描、目录扫描到信息提取和突破8080端口,尽可能排…

Cesium Shader 广告牌纹理动画

Cesium Shader 广告牌纹理动画 Cesium 在广告牌, 自定义shader实现播放spritesheet. 图片资源: https://www.codeandweb.com/free-sprite-sheet-packer Cesium Shader 广告牌纹理动画

MySQL高阶1843-可疑银行账户

目录 题目 准备数据 ​分析数据 实现 总结 题目 如果一个账户在 连续两个及以上 月份的 总收入 超过最大收入(max_income),那么认为这个账户 可疑。 账户当月 总收入 是当月存入资金总数(即 transactions 表中 type 字段的…

Vivado FIR IP 详解 (一)

FIR滤波器是数字信号处理中常用的滤波器,除了通过Verilog代码自己实现外,Vivado提供了一个FIR滤波器 IP,可以直接调用。 一、什么是 Vivado FIR IP 核 FIR(Finite Impulse Response)滤波器即有限长单位冲激响应滤波器…

兔子检测系统源码分享

兔子检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

安卓13设置动态显示隐藏第一页的某一项 动态显示隐藏无障碍 android13设置动态显示隐藏第一页的某一项

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改4.1修改方法14.2修改方法25.编译6.彩蛋1.前言 有时候,我们的设置里面显示的信息,需要根据不同的情况显示不同的信息,例如,动态的显示或者隐藏 “无障碍” 这一项。 2.问题分析 像这个问题…

【经验帖】脏读和不可重复读的概念及影响

脏读和不可重复读是数据库事务并发执行时可能出现的两种数据一致性问题,它们对数据的一致性和完整性有着显著的影响。以下是脏读和不可重复读的具体影响: 脏读的影响 脏读发生在一个事务读取了另一个事务未提交的数据时。由于这些数据尚未被提交&#x…

python机器人编程——用手机web远程视频监控并控制小车驾驶(上篇vrep仿真)

目录 一、前言二、技术架构三、设备端实现四、服务控制端实现(1)摄像头服务模块(2)web服务器 五、web端实现(1)视频显示(2)驾驶盘的实现(3)心跳 六、总结七、…

大厂里为什么都在运用精益六西格玛管理?

近年来,大型企业(简称“大厂”)为了保持其市场领先地位和持续盈利能力,不断探索并引入先进的管理理念和方法。其中,精益六西格玛管理作为一种综合性的质量管理和流程优化工具,正被越来越多的企业所采用。本…

YOLOv8改进系列,YOLOv8 Neck结构引入BiFPN

摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了神经网络架构设计选择用于目标检测,并提出了几项关键优化以提高效率。首先,提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松快速的多尺度特征融合;其次,我们提出了一种复合缩放方法,该方法同时均匀地…

操作系统 --- 进程的同步和互斥问题以及进程互斥实现方法(软件、硬件实现)、同步机制遵循的四条准则

目录 一、进程同步 二、进程互斥 三、进程互斥的实现方法 3.1 软件实现 3.1.1 单标志法(存在的主要问题:违背“空闲让进”原则) 3.1.1.1 基本思想 3.1.1.2 单标志法的基本概念及执行流程 3.1.1.3 特点 3.1.2 双标志先检查法&#…

【Linux 】开发利器:深度探索 Vim 编辑器的无限可能

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:Linux系统编程 这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目…

NC65使用UAP客开主子单据以及NC65常见的开发技术(超级详细附带图和源码)

NC65使用UAP客开主子单据以及NC65单据相关的开发技术(超级详细附带图和源码) 本篇主要讲述使用UAP开发工具客开主子单据包括:创建项目发布、创建发布元数据、生成主子单据、以及相关报错和打补丁。在单据相关技术主要包括:增加空按…

物流管理系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,员工管理,部门管理,物品分类管理,物流公司管理,物流信息管理,配送信息管理 微信端账号功能包括:系统首页&a…

半导体器件制造5G智能工厂数字孪生物联平台,推进制造业数字化转型

半导体器件制造行业作为高科技领域的核心驱动力,正积极探索和实践以5G智能工厂数字孪生平台为核心的新型制造模式。这一创新不仅极大地提升了生产效率与质量,更为制造业的未来发展绘制了一幅智能化、网络化的宏伟蓝图。 在半导体器件制造5G智能工厂中&a…

python 山峦图

效果: 代码: import matplotlib.pyplot as plt import numpy as npdef mountain_plot(data_dict, colorsNone):if colors is None:colors get_colors_from_map(len(data_dict), "Spectral")x list(data_dict.keys())# Y轴位置y_positions …

某锂电厂房项目密集母线槽上红外测温的案例分享

1 行业背景 在政策和技术推动下,锂电产业迅速发展,产业规模持续扩大,同时对供电设备的可靠性要求提高。密集型母线槽作为厂房重要电力传输设备若出现触头温升过高,可能导致停电甚至烧毁等故障,会对生产线安全和企业效…

Java反序列化漏洞分析

相关学习资料# http://www.freebuf.com/vuls/90840.htmlhttps://security.tencent.com/index.php/blog/msg/97http://www.tuicool.com/articles/ZvMbInehttp://www.freebuf.com/vuls/86566.htmlhttp://sec.chinabyte.com/435/13618435.shtmlhttp://www.myhack58.com/Article/ht…

【Qt笔记】QTabWidget控件详解

目录 引言 一、基本功能 二、核心属性 2.1 标签页管理 2.2 标签位置 2.3 标签形状 2.4 标签可关闭性 2.5 标签可移动性 三、信号与槽 四、高级功能 4.1 动态添加和删除标签页 4.2 自定义标签页的关闭按钮行为 4.3 标签页的上下文菜单 五、样式设置 六、应用示例…