switch String

Switch String

[TOC]

对String的处理

java 7 才开始支持Switch String,实现方式是根据StringhashCodeString映射到一个byte上面,再采用switch byte的方式给予支持。

虽然本例是将String映射到了byte,但不难相像如果Switch分支过多的话,会映射到int

    String str = "\"_";
    final String s1 = "\"_";
    final String s2 = "!~";
    final String s3 = "hello";

    /**
        * s1 和 s2 有相同的 hashCode
        */
    switch (str) {
        case s1:
            System.out.println(s1);
            break;
        case s2:
            System.out.println(s2);
            break;
        case s3:
            System.out.println(s3);
            break;
        default:
            System.out.println("default");
            break;
    }

要明确几点

  • switch 不支持long
  • switch 中的 case var: var必须是常量
Java中的Switch String本质
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容