-
Java switch支持的数据类型
2019-06-12 15:45:50随着Java的不断发展,switch支持的数据类型也有了变化,下面就来讲述switch如何来实现对新增数据类型的支持。 支持的数据类型 基本数据类型:int,byte,short,char 基本数据类型封装类:Integer,Byte,Short...随着Java的不断发展,switch支持的数据类型也有了变化,下面就来讲述switch如何来实现对新增数据类型的支持。
支持的数据类型
- 基本数据类型:int,byte,short,char
- 基本数据类型封装类:Integer,Byte,Short,Character
- 枚举类型:Enum(JDK 5+开始支持)
- 字符串类型:String(JDK 7+ 开始支持)
实现
switch底层是使用int类型来判断的,int类型是四个字节的整数型类型,所以只要字节小于或等于4的整数型类型都是可以转化成int类型的,所以支持byte[1字节],short[2字节]都是可以理解的,long[8字节]超出了int的范围,因而不支持。关于枚举和字符(串)也是转化为int类型间接实现的。关于这一点,我们可以验证的,下面举例验证switch如何实现对枚举数据类型的支持。直接上代码:
public class SwitchTest { public static void main(String[] args) { Color color = Color.YELLOW; switch (color) { case RED: System.out.println("RED:" + color.getName()); break; case YELLOW: System.out.println("GREEN:" + color.getName()); break; case BLUE: System.out.println("BLUE:" + color.getName()); break; case BLANK: System.out.println("BLANK:" + color.getName()); break; default: System.out.println("DEFAULT"); break; } } public enum Color { RED("红色", 1), YELLOW("绿色", 2), BLUE("蓝色", 3), BLANK("黑色", 4); private String name; private int index; private Color(String name, int index) { this.name = name; this.index = index; } public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } } }
编译后生成了SwitchTestColor.class:
我们发现多了一个数组Color[] arrayOfColor,原来枚举是再编译的过程中产生了一个新的数组,switch是通过转化成数组的形式来实现对枚举类型的支持。
我们通过相同的方式也可以看到switch对String类型的支持也是通过将String转化为int类型得以实现的,这里就不再赘述。
switch对四种基本数据类型封装类的支持是通过对封装类的拆箱来实现的点击了解
注意封装类不能为null,否则会报空指针异常的。 -
Java中switch语句支持的类型
2020-08-13 09:56:42Java中switch语句支持的类型 支持的类型:byte、short、int、char 不支持的类型:float、double、long、boolean 在JDK1.5之后,switch语句支持了枚举(enum) 在JDK1.7之后,switch语句支持了字符串(String) -
Java支持的数据类型
2014-03-23 12:54:48 -
在java的switch支持的类型
2013-07-01 20:17:24在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。 例如,下面是一段switch中使用String的示例代码。 public ...在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。
例如,下面是一段switch中使用String的示例代码。public class Test { public void test(String str) { switch(str) { case "abc": System.out.println("abc"); break; case "def": System.out.println("def"); break; default: System.out.println("default"); } } }
在switch语句中,String的比较用的是String.equals,因此大家可以放心的使用。需要注意的是,传给switch的String变量不能为null,同时switch的case子句中使用的字符串也不能为null。 -
java switch支持的数据类型
2016-12-01 09:03:28JAVA支持的数据类型有五种 他们分别是: byte、char、short、int、枚举 以上是JDK1.6以前的版本。JDK1.7时,又增加了String,所以相对于JDK1.7而言就是六种了 分别是:byte、char、short、int、枚举 、String -
2020年支持java8的Java反编译工具汇总
2018-06-29 10:58:53luyten是一款操作简单、功能实用的java反编译工具,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等,用户可根据不同的需求选择合适的显示... -
Java注解成员支持的类型
2017-01-03 10:20:18在Java中,注解的成员类型是有限的,例如下面的示例:@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Target { /** * Returns an array of the kinds ... -
java中的switch支持哪些类型
2020-05-11 17:42:43每日趣味问答来了 大厂面试题: 下面的switch语句中,x可以是哪些类型的数据:() switch(x) { default: System.out.println(“Hello”);...java8,switch支持10种类型 基本类型:byte char short int 包装类 :Byte -
java的switch表达式支持的类型
2017-06-21 15:09:40一般格式: switch (表达式) { case 值1:执行语句1; break; case 值2:执行语句2; break; … case 值n:执行语句n;...JDK1.6(及之前版本)支持byte,char,short,int ...JDK1.7新特性支持了String类型 -
java的switch支持包装类型吗?
2019-09-27 17:08:02我们都知道java的switch支持6种数据类型:int、可以转换为int的byte、char、short以及String和枚举类型。那么支不支持基本类型的包装类型呢? 包装类型能放在switch后面吗? 下面两段代码都能正常运行并输出 1 ,... -
Java支持的8种基本数据类型
2018-07-14 20:44:39列举 byte(字节型)、short(短整型)、int(整型)、long(长整型)、float(单精度浮点型)、...java.lang.Byte、java.lang.Short、java.lang.Integer、java.lang.Long、java.lang.Float、java.lang.Doubl... -
Java 中switch语句所支持的类型
2017-02-13 10:32:00Java 中switch语句所支持一下类型: Java版本 支持类型 小于1.5 byte,short,int,char等基本类型及其包装类 ...1.long、float、double、boolean四种基本类型以及它们的包装类(在Java所有版本中 -
Java数据类型的分类
2013-07-11 10:12:15java支持的类型分为两类:基本类型和引用类型 一、基本类型 基本类型包括boolean类型和数值类型。 数值类型包括整数类型和浮点类型。 (1)整数类型包括byte、short、int、long、char类型。 (2)浮点类型包括... -
java中switch支持的类型
2014-04-18 20:35:37在JDK1.6的版本中,switch后面的括号里面只能放int类型的值,注意是只能放int类型, 但是放byte,short,char类型的也可以。 是因为byte,short,shar可以自动提升(自动类型转换)为int。 而不能放long型... -
java虚拟机动态类型语言支持
2017-08-30 18:59:34这篇博客是根据《深入理解java虚拟机》的讲解和本人对动态类型语言的一些认识,来深度剖析一下java虚拟机对动态类型语言的支持! -
Java中switch支持的数据类型
2016-05-30 16:09:46在Java7之前,switch只能支持 byte、short、char、int 或者其 对应的封装类 以及Enum 类型。在Java7中,呼吁很久的 String 支持也终于被加上了。注:byte,short,char可以自动提升(自动类型转换)为int,其实最后... -
java switch是如何支持String类型的?
2018-07-29 09:46:33那有没有同学思考过,java是如何支持String类型的? 我们看下面这段代码: public class SwitchString { public static void main(String[] args) { switch (args[0]) { case "A" :... -
Java的数据类型
2016-02-01 15:11:36Java是一门强类型语言,这就是说每个变量在使用前,必须先声明它的数据类型,然后才能使用。...Java支持的数据类型分为两种,基本数据类型和引用数据类型。 一、JAVA基本数据类型介绍 Java基本数据类型分为两类boolean -
java各版本中switch支持的类型
2020-05-27 17:02:47Java7之前 switch支持 byte、short、int、char或者他们对应的封装类。 java7之后 在原有的基础上加入了String类。 -
【Java基础】Java注解中成员支持的类型说明
2017-02-24 20:17:39Java注解是java提供的一个很好的工具,那么在自定义注解的时候,其内部成员可被允许的类型又有哪些呢?根据 JLS中章节9.6.1 的说明,Java中注解成员的类型必须是如下几类: 1. 基本数据类型(boolean, byte, char, ... -
Java 支持的数据类型有哪些?什么是自动拆装箱?
2018-10-18 21:08:065.Java 支持的数据类型有哪些?什么是自动拆装箱? Java 语言支持的 8 中基本数据类型是: byte short int long float double boolean char 自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型... -
Java中的类型推断和lambda表达式
2020-05-26 06:49:39java是强类型的编程语言,每个java中使用到的变量都需要定义它的类型,否则会编译失败。强类型语言的好处就是可以尽可能的在编译期间就发现代码中可能出现的问题,从而减少在运行时出现问题的可能性。 相对的,强... -
Java支持的基本数据类型及自动装箱、拆箱
2017-03-20 20:07:05Java支持8种基本的的数据类型,byte short int long float double char boolean 下表列出的是他们各自对应的包装类以及所占字节数 类型 包装类 字节数 byte Byte 1 short Short 2 int Integer 4 long ...
收藏数
19,257
精华内容
7,702
-
14.不会叫的狗 教案.docx
-
【优化求解】遗传算法求解电力系统最优潮流问题【Matlab 301期】
-
华为1+X——网络系统建设与运维(高级)
-
浏览器指纹破解办法之“指纹浏览器开源代码”解析
-
Java对象equals、clone
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
Unity RUST 逆向安全开发
-
tc6_xml_v201.xsd
-
sort-change
-
【爱码农】C#制作MDI文本编辑器
-
25 掌声 教案.docx
-
《文件过滤及内容编辑处理命令》
-
神舟战神G8-CA7NP和g8ca7nt哪个好 有什么区别详细配置对比
-
《文件和目录操作命令》
<2.> -
git-commands:every:laptop:每个开发人员都应该知道的主要git命令-源码
-
每日新闻早报 每天精选12条新闻简报 每天一分钟 知晓天下事 3月4日
-
SSM-Mybatis-动态SQL-if元素
-
浏览器主页担心被篡改和锁定?同步登录自定义导航书签
-
15 搭船的鸟 教案.docx
-
2021年 系统架构设计师 系列课