2019独角兽企业重金招聘Python工程师标准>>>

Switch语句的参数类型

JDK1.6 的版本中,switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以。是因为byte,short,shar可以自动提升(自动类型转换)为int。而不能放long型和String型。

JDK1.7 的版本中,switch中可以使用字串String。但仍不支持long型。

原理:hashCode()+equals() 
编译器在编译期间给代码做了转换。

原始代码:

public class StringInSwitchCase { public static void main(String[] args) { String mode = args[0]; switch (mode) { case "ACTIVE": System.out.println("Application is running on Active mode"); break; case "PASSIVE":System.out.println("Application is running on Passive mode"); break; case "SAFE": System.out.println("Application is running on Safe mode"); } }
}

编译器优化后:

import java.io.PrintStream; public class StringInSwitchCase{ public StringInSwitchCase() { } public static void main(string args[]) { String mode = args[0]; String s; switch ((s = mode).hashCode()) { default: break; case -74056953: if (s.equals("PASSIVE")) { System.out.println("Application is running on Passive mode"); } break; case 2537357: if (s.equals("SAFE")) { System.out.println("Application is running on Safe mode"); } break; case 1925346054: if (s.equals("ACTIVE")) { System.out.println("Application is running on Active mode"); } break; } }
}

转载于:https://my.oschina.net/u/997707/blog/804765

2.Switch语句的参数类型相关推荐

  1. switch 语句的参数类型

    switch(参数值){ case value: [default://可选 defaultStatements; ] } 参数值类型必须是这几种类型之一:int,byte,char,short sw ...

  2. JavaScript中switch语句的参数问题

      JavaScript中switch语句的参数类型可以为boolean类型.   例:编写一个程序,实现对给出的一个百分制成绩输出相应的等级. 即:90分以上为'A',80-89分为'B',70-7 ...

  3. switch接受的参数类型

    java的switch-case语句格式如下: [java] view plaincopy switch(参数) { case 常量表达式1: break; case 常量表达式2: break; . ...

  4. Switch语句的参数是什么类型的?

    在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型. 从Java5开始,java中引入了枚举类型,即enum类型. 从Java7开始,exper还 ...

  5. switch中的参数类型

    关于switch的参数类型 switch(expr1)中,expr1是一个整数表达式,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int ...

  6. Java中switch语句支持的类型

    switch语句表达式的取值类型: 基本数据类型:byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String 不支持long.float.double.boolea ...

  7. switch语句作用的类型

    switch只能作用于整数表达式或者枚举常量. 整数表达式可以是int基本类型或Integer包装类型,byte,short,char可以隐式转为int: long和String不能作用于switch ...

  8. js中switch语句的参数问题

    js中switch语句是可以使用变量,表达式,字符串,布尔值等来作为参数的! 例如: <!DOCTYPE html> <html lang="en"> &l ...

  9. 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)...

    1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下: <action name="*"> ...

最新文章

  1. Windows Server 2003文件夹不能共享的解决办法【转】
  2. python入门经典例题-Python入门经典练习题
  3. Java Servlet 技术简介
  4. 前台如何解析json格式 以及后台如何生成json格式
  5. DIV+CSS专题:十天学会DIV+CSS
  6. JimuReport积木报表—分版设计解决什么问题?
  7. java ceilingentry_java.util.TreeMap.ceilingKey()方法实例
  8. iOS 开发面试通关指南:67 个必知问题!
  9. Redis安装及HA(High Availability)配置
  10. loadrunner要点总结
  11. 蚂蚁课堂-第四期-基于SpringCloud构建微服务电商项目 (无密) 解压密码是多少
  12. 微信号,手机号,邮箱验证格式
  13. Excel笔记(持续更新)
  14. 如何获得使用PHP的服务器的本地IP地址?
  15. 星际无限 | 2021年IPFS应该关注的重点是什么?
  16. Windows“自动修复”无法修复
  17. 电子邮箱的格式怎么写,电子邮箱的正确格式填写时什么样子
  18. 快手2020校园招聘秋招笔试--工程C试卷
  19. 北大青鸟java数组_北大青鸟:Java 数组解说(1)
  20. python生成热度图_Python 绘制热度图(seaborn)

热门文章

  1. 敏捷项目管理【海史密斯版】(一)
  2. 计算机表格中需要乘法求和,【2人回答】如何在Excel表格里面使用乘法求和?-3D溜溜网...
  3. MySQL使用案例1
  4. 关于UsedRange方法选中了空区域的解决方案
  5. 使用libjpeg-turbo库中的TurboJPEG API实现图片解压,缩放及压缩功能
  6. css实现文字旋转(div/图片旋转)
  7. AtCoder Beginner Contest 238 ABC题解 数学函数 几何 数论数学
  8. mockjs生成假数据的基本使用
  9. 关于动态内表的逆向考勤程序
  10. Linux 学习指导