Java—基本数据类型变量的自动类型提升

/*
测试基本数据类型变量间的运算规则。

1、这里提到可以做运算的基本数据类型有7种,不包含boolean类型。
2、运算规则包括:
   ①自动类型提升
   ②强制类型转换

3、此VariableTest3.java用来测试自动类型提升

规则:当容量小的变量与容量大的变量做运算时,结果自动转换为容量大的数据类型。

      byte、short、char ----->int ---->  long  ----> float -----> double

      特别的:byte、short、char类型变量之间做运算,结果为int类型。

说明:此时的容量小或大,并非指占用的内存空间大小,而是指表示数据的范围的大小。
      long(8个字节)、float(4个字节)


*/class VariableTest3{
    public static void main(String[] args) {
        int i1 = 10;
        int i2 = i1;

        long l1 = i1;

        float f1 = l1;

        byte b1 = 12;
        int i3 = b1 + i1;
        
        //编译不通过
        //byte b2 = b2 + i1;

        //********************************************************
        //特殊的情况1:byte和short之间做运算
         byte b3 = 12;
         short s1 = 10;
         //编译不通过
         //short s2 = b3 + s1;
         int i4 = b3 + s1;

         byte b4 = 10;
         //编译不通过
         //byte b5 = b3 + b4;

         //特殊情况2:char
         char c1 = 'a';
         //编译不通过
         //char c2 = c1 + b3;
          int i5 = c1 + b3;


          //********************************************************
          //练习1:
          long l2 = 123L;//这里不是自动类型提升,因为123L本身为long类型
          long l3 = 123;//理解为:自动类型提升,因为123为int类型
          //编译不通过
          //long l4 = 123123123123;//123123123123理解为int类型,因为超出了int范围,所以报错
          long l5 = 123123123123L;//如果非得将123123123123赋给long类型,则只需加上l即可。此时的123123123123L就是使用8个字节存储的long类型的值
          
          //练习2:
          float f2 = 12.3F;
          //编译不通过
          //float f3 = 12.3;//不满足自动类型提升的规则(double ----> float)。所以报错
          
          //练习3:
          //规定1:整型常量,规定为int类型。
          byte b5 = 10;
          //byte b6 = b5 + 1;
          int ii1 = b5 + 1;
          
          //规定2:浮点型常量,规定为double类型。
          double dd1 = b5 + 12.3;

          //练习4:说明为什么不允许变量名是数字开头的。为了“自洽”
          /*int 123L = 12;
          long l6 = 123L;
          */
          }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值