java 隐式转换 类型转换 字节数 switch

switch关键字是一种选择分支的表达.比如一个变量a = 3,那么有

        int a = 3;
        switch (a){
            case 3:
                System.out.println("3");
                break;
            case 2:
                System.out.println("2");
                break;
            default:
                System.out.println("non");
        }

这会输出3.

switch允许哪些变量呢

枚举,int型(或者可以隐式转换成int的类型)

case后允许常量,字面常量(必须和switch后的类型对应)

所以switch后允许的类型有:byte,char,short,int,Enum

jdk7 后允许了String

long 和 double 类型不可以,,因为他们不能隐式转换成int

如何隐式转换:

1字节2字节4字节8字节
byte,booleanchar,shortint,floatdouble,long

规定是这样的:字节数低的向字节数高的转换时隐式转换(float,double分开算),顺序是这样的:
byte –> short –> char –> int –>long –>float –> double
低位的能隐式转换成高位的.boolean类型不计算进去..

有些题大家可以看看

  1. 下面代码哪儿会报错,为什么?
        short a = 1;
        int b = 2;
        a = a + b; // 这一句报错. a + b时,a隐式转换成int,结果是int,去赋值给short的a需要强制转换,所以会报错
        a += b; // +=符号会进行自动强转

2.以下代码会报错吗?若不会,输出结果是什么?

        int a = 'a' + 'A';// char隐式转成int,这里取a和A的ASCII编码,分别是 97 和 65
        short b = 10;
        long c = a + b; // short的b自动转成int, a+b结果的int自动转成long.所以c的值是172
        System.out.println(c);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值