首页 > 试题广场 >

对于jdk1.8,下面的switch语句中,x可以是哪些类型

[不定项选择题]
下面的switch语句中,x可以是哪些类型的数据:()
switch(x)
{
default:
System.out.println("Hello");
}

  • long
  • char
  • float
  • byte
  • double
  • String
以java8为准,switch支持10种类型 基本类型:byte char short int 对于包装类 :Byte,Short,Character,Integer String enum 2、实际只支持int类型 Java实际只能支持int类型的switch语句,那其他的类型时如何支持的 a、基本类型byte char short 原因:这些基本数字类型可自动向上转为int, 实际还是用的int。 b、基本类型包装类Byte,Short,Character,Integer 原因:java的自动拆箱机制 可看这些对象自动转为基本类型 c、String 类型 原因:实际switch比较的string.hashCode值,它是一个int类型 如何实现的,网上例子很多。此处不表。 d、enum类型 原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型 所以也可以说 switch语句只支持int类型
发表于 2020-02-13 12:43:36 回复(95)
jdk1.7之前byte,short ,int ,char
jdk1.7之后加入String 

发表于 2019-06-03 15:30:01 回复(6)
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,也支持了String类型
String byte short int char Enum 类型
发表于 2019-06-12 22:41:55 回复(7)
照搬过来的,感谢分享:
jdk1.7之前byte,short ,int ,char
jdk1.7之后加入String
java8,switch支持10种类型
基本类型:byte char short int
包装类 :Byte,Short,Character,Integer String enum
实际只支持int类型 Java实际只能支持int类型的switch语句,那其他的类型时如何支持的
a、基本类型byte char short 原因:这些基本数字类型可自动向上转为int, 实际还是用的int。
b、基本类型包装类Byte,Short,Character,Integer 原因:java的自动拆箱机制 可看这些对象自动转为基本类型
c、String 类型 原因:实际switch比较的string.hashCode值,它是一个int类型
d、enum类型 原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型 所以也可以说 switch语句只支持int类型

发表于 2020-05-12 11:01:09 回复(4)
switch支持能够隐式转换为int类型的及对应的包装类,枚举,字符串,char
发表于 2019-09-04 10:19:03 回复(0)
牛圈红名大佬MC枫少之前沉迷于编程题,偶然回首发现选择题也比较有意思,就由MC枫少为您解答:
JDK 1.5以前:x 只能是byte, short, char, int
JDK 1.5之后:x 的类型也可以是枚举类型啦
JDK 1.7之后:x 的类型又多了String类型
发表于 2022-06-17 13:33:22 回复(1)
switch语句可以接受String、 byte、 short、 int、 char、 Enum这几种类型 
发表于 2022-03-08 14:30:15 回复(0)
jdk1.7之前byte,short ,int ,char
jdk1.7之后加入String 
发表于 2022-01-02 17:48:41 回复(0)

在JDK1.5之前,switch循环只支持byte short char int四种数据类型.

JDK1.5 在switch循环中增加了枚举类与byte short char int的包装类,对四个包装类的支持是因为java编译器在底层手动进行拆箱,而对枚举类的支持是因为枚举类有一个ordinal方法,该方法实际上是一个int类型的数值.

jdk1.7开始支持String类型,但实际上String类型有一个hashCode算法,结果也是int类型.而byte short char类型可以在不损失精度的情况下向上转型成int类型.所以总的来说,可以认为switch中只支持int.

发表于 2021-12-02 15:22:34 回复(0)
java11,required: 'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum'
编辑于 2020-01-22 18:28:38 回复(0)
在jdk1.7前,switch的case可以为能够隐式自动转换为int类型的,如byte short char;还有int以及枚举类型 jdk1.7新增字符串String
发表于 2019-09-09 00:02:02 回复(0)
jdk1.8后,switch支持byte,short,int,char,String
发表于 2022-06-22 14:23:23 回复(0)
switch只支持  可以转成 int 的类型,enum,String 
short,byte,char可以转换成为int,因此支持

编辑于 2021-02-26 17:10:47 回复(0)
switch required: 'char, byte, short, int, Character, Byte, Short, Integer, String, or an enum'
发表于 2022-04-02 21:59:03 回复(0)
在switch(expr1)中,expr1只能是一个整数表达式或者是枚举变量,而整数表达式可以是int基本数据类型或者是Integer包装类型,而byte short char int 都可以隐式转换成int,所以这些类型以及这些类型的包装类都可以用于expr1表达式中。而String long不符合switch的规定,并且不能隐式的转换成int类型,但是,jdk1.7后switch可以作用于string中
发表于 2022-03-13 22:10:39 回复(0)
byte,short,int,char,Enum,string
发表于 2021-11-08 22:41:57 回复(0)
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,也支持了String类型
String byte short int char Enum 类型
发表于 2021-11-03 08:25:27 回复(0)
以java8为准,switch支持10种类型 基本类型:byte char short int 对于包装类 :Byte,Short,Character,Integer String enum 2、实际只支持int类型 Java实际只能支持int类型的switch语句,那其他的类型时如何支持的 a、基本类型byte char short 原因:这些基本数字类型可自动向上转为int, 实际还是用的int。 b、基本类型包装类Byte,Short,Character,Integer 原因:java的自动拆箱机制 可看这些对象自动转为基本类型 c、String 类型 原因:实际switch比较的string.hashCode值,它是一个int类型 如何实现的,网上例子很多。此处不表。 d、enum类型 原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型 所以也可以说 switch语句只支持int类型
发表于 2020-08-31 01:12:37 回复(0)
jdk1.7之前最大到int
jdk1.7之后加入String 
发表于 2020-06-18 16:22:36 回复(0)
IE是不是蠢 int enum String byte short char String在7以前没有
发表于 2020-05-24 08:30:45 回复(0)