整理好了!2024年最常见 100 道 Java基础面试题(二十四)

上一篇地址:整理好了!2024年最常见 100 道 Java基础面试题(二十三)-CSDN博客

四十七、switch 是否能用在 long 上?

在Java中,switch语句是一种流控制语句,它允许根据一个变量的值执行不同的代码块。在Java的早期版本中,switch语句支持的基本数据类型有限,但是随着Java语言的发展,支持的类型逐渐增加。

Java 12之前

在Java 12之前,switch语句支持的基本数据类型包括:

  • byte
  • short
  • char
  • int

对于long类型,switch语句是不支持的。如果你尝试使用long类型的变量作为switch的条件表达式,编译器会报错。

Java 12及之后

从Java 12开始,switch语句增强了对Stringenum类型的支持,并且也支持了long类型。这意味着你可以使用long类型的变量作为switch的条件表达式。

示例

Java 12之前的写法
java 复制代码
long value = 123L;
if (value == 123L) {
    // 代码块
} else if (value == 456L) {
    // 代码块
}
// ... 以此类推

由于switch不支持long,所以通常使用if-else语句进行条件判断。

Java 12及之后的写法
java 复制代码
long value = 123L;
switch (value) {
    case 123L -> {
        // 代码块
    }
    case 456L -> {
        // 代码块
    }
    // ... 以此类推
}

在Java 12及之后,可以直接使用long类型的变量作为switch的条件表达式。

注意事项

  • 即使在Java 12及之后,switch语句也不支持浮点数类型(floatdouble)。
  • switch语句中的case标签必须是常量表达式,不能是变量或计算结果。
  • 在使用switch语句时,要注意case标签的穷举和break语句的使用,以避免代码执行流程的混乱。

总结

从Java 12开始,switch语句可以使用long类型的变量作为条件表达式,这为处理long类型的条件判断提供了更加简洁和直观的方式。然而,需要注意的是,switch语句的使用仍然受到一定的限制,比如不支持浮点数类型。

四十八、switch 是否能用在 String 上?

在Java中,switch语句确实可以用于String类型。这是Java语言的一个特性,允许使用字符串字面量作为switch语句的条件表达式。每个case标签必须是一个字符串字面量,或者是一个与字符串字面量相等的字符串常量表达式。

使用switch处理String

当使用String类型作为switch的条件表达式时,switch语句会根据字符串的内容与各个case标签进行比较。如果找到匹配的字符串,程序流程将跳转到相应的case块执行。

示例

java 复制代码
public class StringSwitchExample {
    public static void main(String[] args) {
        String operation = "add";

        switch (operation) {
            case "add":
                System.out.println("Operation is addition.");
                break;
            case "subtract":
                System.out.println("Operation is subtraction.");
                break;
            case "multiply":
                System.out.println("Operation is multiplication.");
                break;
            case "divide":
                System.out.println("Operation is division.");
                break;
            default:
                System.out.println("Unknown operation.");
                break;
        }
    }
}

在这个示例中,switch语句根据变量operation的值执行不同的代码块。每个case标签都是一个字符串字面量,与operation变量的值进行比较。

注意事项

  • switch语句中的字符串比较是使用String.equals(Object)方法实现的,这意味着比较是区分大小写的。
  • 如果switch语句中的所有case标签都没有匹配成功,程序流程将跳转到default块(如果存在)。
  • 字符串字面量必须与变量的值完全匹配,包括大小写和空格。

总结

switch语句对String类型的支持使得处理基于字符串的多分支逻辑变得更加方便和直观。它提供了一种替代传统的if-else语句链的方法,特别是在有多个分支选择时,可以使得代码更加清晰和易于维护。然而,使用switch处理字符串时,需要注意字符串比较的细节,如大小写敏感性和完全匹配的要求。

相关推荐
火兮明兮14 分钟前
Python训练第四十五天
开发语言·python
小华同学ai19 分钟前
千万别错过!这个国产开源项目彻底改变了你的域名资产管理方式,收藏它相当于多一个安全专家!
前端·后端·github
独行soc22 分钟前
2025年渗透测试面试题总结-腾讯[实习]玄武实验室-安全工程师(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试·区块链
Vowwwwwww23 分钟前
GIT历史存在大文件的解决办法
前端·git·后端
我爱Jack26 分钟前
ObjectMapper 在 Spring 统一响应处理中的作用详解
java·开发语言
张较瘦_30 分钟前
[论文阅读] 软件工程 | 量子计算如何赋能软件工程(Quantum-Based Software Engineering)
论文阅读·软件工程·量子计算
捡田螺的小男孩35 分钟前
京东一面:接口性能优化,有哪些经验和手段
java·后端·面试
小白杨树树41 分钟前
【SSM】SpringMVC学习笔记8:拦截器
java·开发语言
艾露z43 分钟前
深度解析Mysql中MVCC的工作机制
java·数据库·后端·mysql