A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小蜀哥哥 于 2019-6-6 17:08 编辑

目标
理解什么是自动类型转换,清楚自动类型转换的应用场景,能够独立自动类型转换
分析
  • 为什么会存在数据类型转换
  • 数据类型转换的类别
  • 自动类型转换的应用场景

详解
  • 为什么存在数据类型转换
    Java程序中要求参与计算的数据,必须要保证数据类型统一成一致,才可以参与运算,但是在实际开发中经常会遇到不同类型的数据进行运算。所以数据类型之间的转换是有必要。
  • 数据类型转换的类别

    • 自动类型转换
    • 强制类型转换

  • 自动类型转换应用场景

  • 常量直接赋值给变量
       随便写一个整数, 如果它的范围在变量的范围之内是可以直接赋值给该类型的变量

       int i = 1;    // 自动类型转换: 1.随便写一个整数, 如果它的范围在变量的范围之内是可以直接赋值给该类型的变量。   byte b = 12 ;   //byte b = 1299 ; // 报错   System.out.println(b);

  • 小范围的变量给大范围的变量赋值
        取值范围小的类型可以自动转换为取值范围大的类型 。也就是小范围变量到大范围变量是自动转换的。满足byte->short->int->long->float->double,其中char类型的变量可以直接自动转换给int类型的变量。。

[Java] 纯文本查看 复制代码
 
  public static void main(String[] args) {             // 自动类型转换: 小范围类型的变量可以自动转换给大范围类型的变量。
             byte b1 = 23 ; 
             int age = b1 ; 
             System.out.println(age);
             // 自动类型转换: 小范围类型的变量可以自动转换给大范围类型的变量。
             int s = 23122;  
             long lg = s; 
             System.out.println(s); 
              // 自动类型转换: 小范围类型的变量可以自动转换给大范围类型的变量。
              long lg1 = 12231313; 
              double db = lg1 ; 
              System.out.println(db); 
              // 拓展:      // 自动类型转换: 小范围类型的变量可以自动转换给大范围类型的变量。
              // char是编号,但是字符编号的范围是有限的相对于int类型来说  
              // 是小范围的,所以可以自动转换。
              char ch = '中'; 
              int it = ch ; 
              System.out.println(it); 
   }

小结
  • 自动类型转换是自动进行的,程序员无需做额外操作!
  • 自动类型转换的场景

    • 常量直接给变量赋值
    • 小范围变量给大范围变量赋值

扩展
在java中所有数据都是有类型的,我们在操作过程中要注意基本类型与引用类型(包装类)之间也存在类型转换,但是在JDK1.5后,他们之间已经可以实现自动转换。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马