Java数据类型转换及其原理

Java数据类型转换及其原理

数据类型分类

  • 数据类型就是约束变量存储数据的形式

  • 数据类型的分类

    • 引用数据类型 除了基本数据类型之外的其它类型

    • 基本数据类型 四类八种

      • byte short int long 整型
      • float double 浮点型
      • char 字符型
      • boolean 布尔型

      image-20221121214849953

      23是int类型,加上L/l是long型数据

      23.8是double类型,加上F/f是float类型

数据类型转换

  • 自动类型转换

​ 类型范围小的变量可以直接赋值给类型范围大的变量

image-20221121222439514

  • 表达式的自动类型转换

    • 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
    • 表达式的最终结果由表达式中的最高类型决定
    • 在表达式中,byte,short,char是直接转换成int类型参与运算的。
    public class TypeTest {
        public static void main(String[] args) {
            byte a = 10;
            int b = 20;
            double c = 1.0;
            double res = a+b+c;
            System.out.println(res);//31.0
    
            double res2 = a+b-2.3;
            System.out.println(res2);//27.7
    
            byte i = 10;
            byte j = 20;
            char k = 'a';
            int res3 = i+j+k;
            System.out.println(res3);//127
        }
    }
    
  • 强制类型转换

    • 问题:

      • 类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,会报错。
    • 强制类型转换可以将类型范围大的变量,数据赋值给类型范围小的变量

      • 数据类型 变量2 = (数据类型)变量1 数据
      public class TypeTest1 {
          public static void main(String[] args) {
              
              int a  = 10;
      //        byte c  = a;//报错
              byte b = (byte)a;
          }
      }
      
    • 原理

      image-20221122164035443

      • 强制类型转换可能造成数据(丢失)溢出。

      • 浮点型强制转换成整型,直接丢掉小数部分,保留整数部分返回

posted @ 2022-11-22 16:44  slience123  阅读(118)  评论(0)    收藏  举报