Java基础篇之可能会忽略的整型变量细节知识

在整型变量的字面量赋值中,有一些细节在此记录下。

1、byte

        byte b1 = 2;
        byte b2 = 128;
        byte b3 = (2147483648);

上面三个赋值语句,第一个不会有编译错误,第二个赋值128已经超过了byte的最大值,所以需要强制类型转换,第三种赋值超过了int的最大值,强制转换也会编译错误。

2、short

        short s1 = 2;
        short s2 = 32768;
        short s3 = (2147483648);

上面三个赋值语句,第一个不会有编译错误,第二个赋值32768已经超过了short的最大值,所以需要强制类型转换,第三种赋值超过了int的最大值,强制转换也会编译错误。

3、int

        int i1 = 2;
        int i2 = 2147483647;
        int i3 = 2147483648;

上面三个赋值语句,第一个和第二个不会有编译错误,因为没有超过int的最大值,第三种赋值超过了int的最大值,强制转换也会编译错误。

4、long

        long l1 = 2;
        long l2 = 2147483648L;
        long l3 = 9223372036854775807L;
        long l4 = 9223372036854775808L;
        long l5 = 2147483648;

上面的赋值语句中,第一个、第二个和第三个都没有超过long的最大值,所以不会编译错误。第四个已经超过了long的最大值,所以会编译错误。最后一个赋值没有L后缀,默认int,但是已经超过int的最大值,强转也会编译错误。

总结:
对于byte和short,赋值如果没有超过彼此的取值范围则直接赋值,如果超过了但是没有超过int的最大值,则需要强制类型转换。如果超过了int的最大值,强转也会报错。
对于int类型,只要不超过in他的最大值即可,超过了编译错误。
对于long,如果是加L后缀,赋值不能超过long的最大值,否则编译错误。如果没有加L后缀,则不能超过int的最大值,否则编译错误。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值