switch(expr):

其中,expr参数可以是一个枚举常量(由整型或字符类型实现)或一个整数表达式,其中整数表达式可以是基本类型int或其包装类Integer。由于byte、short和char类型都可以隐式转换为int,因此这些类型以及它们对应的包装类都可以作为expr参数。而long,float,double等类型都不能够隐式转换为int类型,因此它们不能作为expr参数。如果一定要使用他们,必须将其强制转换为int类型才可以。

在Java 7中,switch开始支持String类型。从本质来讲,switch对字符串的支持,其实是int类型值得匹配。其实现原理为:通过对case后面的String对象调用hashCode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。如果匹配,接着会调用字符串的String.equals()方法进行匹配,如果没有匹配成功,说明不存在。

String变量不能为null,同时,switch的case子句中使用的字符串也不能为null。

最新文章

  1. DDD 领域驱动设计-三个问题思考实体和值对象(续)
  2. lamp遇到问题
  3. hadoop 日志分析
  4. freemarker解析模板报错问题
  5. 列式存储 V.S. 行式存储
  6. 【转】java静态代码块和构造方法执行顺序
  7. bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
  8. Spring Aop重要概念介绍及应用实例结合分析
  9. CPP: 跨平台生成GUID/UUID
  10. C++ Win32控制台应用程序捕捉关闭事件
  11. WCF技术剖析之十一:异步操作在WCF中的应用(下篇)
  12. IIS总提示输入用户名和密码
  13. Ubuntu配置OpenStack 二:配置时间同步NTP和安装数据库Maridb以及问题总结
  14. Windows下免安装版mysql5.7的初始密码
  15. word search(二维数组中查找单词(匹配字符串))
  16. linux的远程唤醒
  17. Delphi MDI 子窗体的创建和销毁 [zhuan]
  18. ansible教程
  19. HDU - 4370 0 or 1
  20. MVC与单元测试实践之健身网站(三)-角色与权限

热门文章

  1. tensorflow函数介绍(3)
  2. @ControllerAdvice全局数据预处理
  3. Chronograf启动(Influxdb的管理平台)
  4. 【大量干货】史上最完整的Tengine HTTPS原理解析、实践与调试
  5. OC + RAC (四) combineLatest和merg
  6. swift中为什么要创造出可选型?
  7. 容易混淆的JavaScript基础知识之语法部分
  8. 十二 windows临界区,其他各种mutex
  9. [Ynoi2012]D1T3
  10. hypermesh生成MNF柔性体