Java高频面试之SE-15

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶

String 怎么转成 Integer 的?它的原理是?

在 Java 中,要将 String 转换为 Integer 类型,可以使用 Integer 类的静态方法 parseInt(String s) 或者 Integer 类的构造函数。

1. 使用 Integer.parseInt(String s)

String str = "123";
int number = Integer.parseInt(str);

2. 使用 Integer 构造函数

String str = "123";
Integer number = new Integer(str);

原理

1. Integer.parseInt(String s)
  • 该方法会将输入的字符串 s 转换为一个 int 类型的值,方法内部实现的步骤大致如下:
    1. 前导空格处理:首先会去除字符串开头的空格。
    2. 符号处理:检查字符串的第一个字符是否为 ‘-’ 或 ‘+’,以确定最终整数的符号。
    3. 字符到数字的转换:逐字符地遍历字符串,检查每个字符是否在合法范围(‘0’到’9’)。如果不在合法范围,抛出 NumberFormatException
    4. 数值累加:不断更新一个整型变量来存储最终结果,使用公式:
      [
      result = result \times 10 + (currentCharacter - ‘0’)
      ]
    5. 范围检查:检查转换后的结果是否超出了 int 类型的范围(-2,147,483,648 到 2,147,483,647)。
2. Integer 构造函数
  • 使用构造函数 new Integer(String s) 的过程与 parseInt 方法相似,也是将字符串转换为整数。同时,在 JDK 9 之后,该构造函数已经被标记为不推荐使用(deprecated),推荐使用 Integer.valueOf(String) 取而代之。valueOf 方法在功能上也会调用 parseInt 方法,但会返回 Integer 对象用于缓存。

注意事项

  1. 异常处理:在转换过程中,如果字符串不符合数字格式,如包含字母或者特殊字符,将会抛出 NumberFormatException。因此,建议在使用这两个方法时添加异常处理。

    try {int number = Integer.parseInt("123A"); // 这将抛出异常
    } catch (NumberFormatException e) {e.printStackTrace(); // 处理异常
    }
    
  2. 数字范围:确保字符串表示的数字在 int 的有效范围内,否则会抛出 NumberFormatException,例如将大于 Integer.MAX_VALUE 的数值字符串转换为 int

通过 Integer.parseInt(String s)Integer 构造函数,我们可以将 String 类型的数字转换为 Integer 类型。在实际使用中,建议使用 Integer.parseIntInteger.valueOf 来进行转换,确保良好的性能和内存管理。

说说Java中的异常处理机制

Java中的异常处理机制是Java语言的重要特性之一,它允许程序在运行时处理错误和异常条件,从而提高程序的稳定性和可靠性。

1. 异常的概念

异常 是指程序运行过程中发生的不可预期事件,这些事件使得程序的正常执行流程中断。在Java中,所有的异常都是 Throwable 类的子类,Throwable 分为两种主要类型:

  • 错误 (Error):表示严重的问题,通常是由虚拟机引起的,程序无法处理,比如 OutOfMemoryError
  • 异常 (Exception):表示程序可以捕获并处理的问题,例如文件未找到、网络连接失败等。这部分又分为两类:
    • 检查异常 (Checked Exception):在编译时被检查,必须显式捕获或声明(例如 IOExceptionSQLException)。
    • 未检查异常 (Unchecked Exception):在运行时发生,通常是由于程序逻辑错误引起的,不需要显式捕获(例如 NullPointerExceptionArrayIndexOutOfBoundsException)。

2. 基本语法

Java 中的异常处理使用 try-catch-finally 语句来实现。

try {// 可能抛出异常的代码
} catch (ExceptionType1 e1) {// 处理 ExceptionType1 异常
} catch (ExceptionType2 e2) {// 处理 ExceptionType2 异常
} finally {// 无论是否捕获到异常都会执行的代码(可选)
}
  • try 块:包含可能会抛出异常的代码。
  • catch 块:用于捕获并处理特定类型的异常,可以有多个 catch 块。
  • finally 块:无论是否发生异常,在 trycatch 中的代码运行之后都会执行的代码,通常用于资源释放,如关闭流、数据库连接等。

3. 抛出异常

可以使用 throw 语句手动抛出异常,并使用 throws 关键字在方法声明中指明该方法可能抛出的异常类型。

public void myMethod() throws IOException {// 抛出异常throw new IOException("File not found");
}

4. 自定义异常

Java允许用户自定义异常,通过继承 ExceptionRuntimeException 类来创建自己的异常类。

public class MyCustomException extends Exception {public MyCustomException(String message) {super(message);}
}

5. 异常处理的关键原则

  • 尽量捕获具体异常:在多个 catch 块中,优先捕获具体的异常类型,后捕获一般异常(如 Exception),以确保更好的错误处理。

  • 清晰的异常信息:抛出异常时,提供明确的错误信息,以帮助开发者快速定位问题。

  • 资源管理:在 finally 块中释放资源,或使用 try-with-resources 语句自动管理资源,避免资源泄露。

    try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {// 读取文件
    } catch (IOException e) {e.printStackTrace();
    }
    
  • 合适的异常类型:使用检查异常表示受检情况,使用未检查异常表示编程错误;不应滥用异常。

  • 不要忽略异常:不要简单地捕获异常而不处理,一定要进行适当的处理或记录。

在这里插入图片描述
图标更换
https://pan.quark.cn/s/d366949260e9
IDEA ji huo
https://pan.quark.cn/s/4216736c0427
🎬大全
https://kdocs.cn/l/cqhxNU9I2lLD

在这里插入图片描述

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

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

相关文章

2024又是一年的CSDN之旅-总结过去展望未来

一、前言 一年就这样在忙忙碌碌的工作和生活中一晃而过,总结今年在CSDN上发表的博客,也有上百篇之多,首先感谢CSDN这个平台,能让我有一个地方记录工作中的点点滴滴,也在上面学到了不少知识,解决了工作中遇到…

c86机器安装nvaid显卡驱动报错:ERROR:Unable to load the kernel module ‘nvidia.ko‘.

背景: 最近小伙伴要去北京甲方现场搭建我们的AI编码服务,需要使用GPU机器跑大模型,根据现场提供的信息是2台C86的机器,显卡够够的,但是现场是内网环境,因此,需要先准备好需要的安装包&#xff…

LeetCode 热题 100_实现 Trie (前缀树)(54_208_中等_C++)(图;前缀树;字典树)

[TOC](LeetCode 热题 100_实现 Trie (前缀树)(54_208)) 题目描述: Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&…

【Maui】视图界面与数据模型绑定

文章目录 前言一、问题描述二、解决方案三、软件开发(源码)3.1 创建模型3.2 视图界面3.3 控制器逻辑层 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI&…

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

作者:王世发,吴艳兴等,58同城数据架构部 导读: 本文介绍了58同城在其数据探查平台中引入StarRocks的实践,旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时,58同城选择StarRocks作为加速引擎&…

探秘 Linux 进程状态:解锁系统运行的密码

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 🚩用通俗易懂且不失专业性的文字,讲解计算机领域那些看似枯燥的知识点🚩 在 Linux 系统…

深度学习-89-大语言模型LLM之AI应用开发的基本概念

文章目录 1 什么是智能体(Agent)2 什么是大语言模型(LLM)2.1 LLM的训练及使用2.2 Transformer架构2.3 基于LLM的Agent框架3 什么是检索增强生成(RAG)3.1 RAG是什么3.2 生成式AI应用开发3.3 RAG的整体流程3.4 RAG技术3.4.1 简单RAG(Simple RAG)3.4.2 校正RAG(Corrective RAG)3.4…

鸿蒙产业学院正式揭牌!软通动力与深信息签署校企合作框架协议

12月27日,深圳信息职业技术学院(简称“深信息”)与软通动力信息技术(集团)股份有限公司(简称“软通动力”)正式签署校企合作框架协议,并共同揭牌成立鸿蒙产业学院。深信息校长王晖&a…

python轻量级框架-flask

简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用,适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架,是因为它与一些大型 Web 框架…

2024年河北省职业院校技能大赛 “信息技术应用创新赛项”(高职组)样题解法

​有问题请留言或主页私信咨询 2024年河北省职业院校技能大赛 “信息技术应用创新赛项”(高职组)样题 一、初始化环境 1.账号及默认密码如表1所示。 表1 账号及密码规划表 账 号密 码root(服务端)kylin2024!desk&#xff08…

gozero获取数据库内容报错解决方案与实践

这个错误通常出现在 Go 语言的数据库查询中,表示你尝试将一个不支持的数据类型([]uint8,即字节切片)存储到一个 Go 类型(*time.Time)中。具体来说,create_time 列的类型可能是 DATETIME 或 TIME…

【学习笔记15】如何在非root服务器中,安装属于自己的redis

一、下载安装包 官网下载黑马程序员给的安装包(redis-6.2.6) 二、将安装包上传至服务器 我将安装包上传在我的文件夹/home/XXX,指定路径中/src/local/redis/,绝对路径为/home/XXX/src/local/redis/解压安装包 XXXomega:~$ cd …

PotPlayer 配置安装

文章目录 一、下载1、官网链接2、微软商店 Microsoft Store 二、安装1、双击安装包2、选择字体3、安装向导下一步4、接收许可协议5、选择组件及关联6、选择安装位置7、硬解选项 三、设置1、关闭自动更新2、左键单双击设置3、视频下自动隐藏3.1、效果对比 4、播放信息显示设置4.…

【PCIe 总线及设备入门学习专栏 2 -- PCIe 的 LTSSM 和 Enumeration】

文章目录 OverviewLTSSM StatesDetect StatesDETECT_QUIETDETECT_ACTDETECT_WAITPolling StatesPOLL_ACTIVEPOLL_CONFIGPOLL_COMPLIANCEConfiguration StatesCONFIG_LINKWD_STARTCONFIG_LINKWD_ACCEPTCONFIG_LANENUM_WAITCONFIG_LANENUM_ACCEPTCONFIG_COMPLETECONFIG_IDLERecov…

STM32 FreeROTS Tickless低功耗模式

低功耗模式简介 FreeRTOS 的 Tickless 模式是一种特殊的运行模式,用于最小化系统的时钟中断频率,以降低功耗。在 Tickless 模式下,系统只在有需要时才会启动时钟中断,而在无任务要运行时则完全进入休眠状态,从而降低功…

【机器学习实战中阶】书籍推荐系统

图书推荐系统机器学习项目 通过这个机器学习项目,我们将构建一个图书推荐系统。对于这个项目,我们将使用 K 最近邻(K-Nearest Neighbor, KNN)算法。 让我们开始构建这个系统。 数据集说明 关于数据集 背景 在过去的几十年中…

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础 目录 1.NAND FLASH 和NOR FLASH异同 ? 2.CPU,MPU,MCU,SOC,SOPC联系与差别? 3.什么是交叉编译? 4.为什么要交叉编译? 5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别? 1…

【数据分享】1929-2024年全球站点的逐月平均气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正

Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…

电梯系统的UML文档07

从这个类中得到的类图,构划出了软件的大部分设计。 系统结构视图提供软件和整个系统结构最复杂的也是最优雅的描述。和通常的软件系统相比,在分布式嵌入系统中了解系统组件如何协同工作是非常重要的。毕竟,每个类图仅仅是一个系统的静态设计…