Java高频面试之SE-15

embedded/2025/1/22 18:04:08/

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

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

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

1. 使用 Integer.parseInt(String s)

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

2. 使用 Integer 构造函数

java">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。因此,建议在使用这两个方法时添加异常处理。

    java">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 语句来实现。

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

3. 抛出异常

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

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

4. 自定义异常

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

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

5. 异常处理的关键原则

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

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

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

    java">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.ppmy.cn/embedded/156117.html

相关文章

centos9编译安装opensips 二【进阶篇-定制目录+模块】推荐

环境:centos9 last opensips -V version: opensips 3.6.0-dev (x86_64/linux) flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS1024, MAX_RE…

Linux使用SSH连接GitHub指南

基础配置流程 步骤1:生成SSH密钥 打开终端:首先,打开你的Linux终端。 生成SSH密钥对:输入以下命令来生成一个新的SSH密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"-t rsa:使用RSA加密算法生成密钥。-b 4096:密钥长度为4096位,增加安全性。…

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中,开始在所有平台上推出这一功能。 1.1. 更新版本: Chrome 126 在 ChromeOS、Linux、Mac、Windows 上:在 1% 的稳定版用户…

View Shadcn UI 2025.1.2 发布公告:全新跑马灯组件与多项优化更新

亲爱的开发者们: 我们很高兴地宣布 View Shadcn UI 2025.1.2 版本正式发布!本次更新带来了全新的跑马灯组件,并对多个现有组件进行了功能增强和问题修复。 🚀 重要链接 GitHub 仓库:https://github.com/devlive-comm…

连接 OpenAI 模型:基础操作

在这一部分中,我们将介绍如何连接 OpenAI 模型,设置 API 密钥,并使用 Spring AI 的 ChatClient 与 OpenAI 模型进行简单的对话。Spring AI 为集成 OpenAI 模型提供了方便的工具,使得开发者能够更轻松地与 GPT 系列模型进行交互。 …

常见Arthas命令与实践

Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件,可快速生成…

kotlin的协程的基础概念

Kotlin的协程是一种用于简化异步编程的强大工具。 理解协程的基础概念可以帮助开发者有效地利用其能力。 以下是Kotlin协程的一些关键基础概念: 协程(Coroutines) : 协程是一种用于处理并发任务的编程模型,它可以在单…

TypeScript - 利用GPT辅助学习

TypeScript 一、基础1. 安装 TypeScript2. 创建你的第一个 TypeScript 文件3. 编译 TypeScript 代码4. 变量声明与类型注解5. 函数与类型注解6. 总结 二、进阶常用类型1. 类型别名2. 对象类型3. 类型断言4.typeof 操作符 高级类型1. 类2. 交叉类型3. 泛型与 keyof4. 索引签名类…