• Java学习:数据类型转换注意事项


    数据类型的转换

    当数据类型不一样时,将会发生数据类型转换。

    自动类型转换(隐式)
      1.特点 :代码不需要进行特殊处理,自动完成。
      2.规则 :数据范围从小到大。

    //左边是long类型,右边是默认的int类型,左右不一样
    //将右边的int常量,交给左侧的long变量进行存储
    //int--> long ,符合数据范围从小到大的要求
    long num1 = 100;
    System.out.println(num1);
    
    double num2 = 2.5F;
    System.out.println(num2)


    强制类型转换(显式)

      1.特点 :代码需要进行特殊处理,不能自动完成。
      2.格式 :范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;

    //左边是int类型,右边是long类型,不一样
    //long --> int,不是从小到大
    //不能发生自动类型转换
    //范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;
    int num1 = (int) 100L;
    System.out.println(num1)//100
    
    int num2 = (int)777777777777L;
    System.out.println(num2);//170532704
    
    int num3 = (int)3.77;
    System.out.println(num3);//3 所有小数被舍弃
    
    char zifu = 'A';
    System.out.println(zifu + 1);//66 这里的A被当作65处理

    注意事项:
    1.强制类型转换一般不推荐使用,因为有可能发生精度损失,数据溢出。
    2.byte/short/char这三种类型都可以发生数学运算,例加法“+”
    3.byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。
    4.Boolean类型不能发生数据类型转换

    数字和字符的对照关系表(编码表)

    ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。
    Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII一样,但是从128开始包含有更多字符。

    48 --- ’065 --- ’A‘
    97 --- ’a'
  • 相关阅读:
    线程基础1
    组合数学的卡特兰数 TOJ 3551: Game of Connections
    2017ACM/ICPC广西邀请赛-重现赛(感谢广西大学)
    Codeforces Round #430 (Div. 2)
    线代之高斯消元
    牛客网Wannafly模拟赛
    TOJ3039: 材质贴图
    AtCoder Grand Contest 019
    TOJ 3974: Region n条直线m个圆最多将圆分为几个区域
    AIM Tech Round 4 (Div. 2)
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11045318.html
Copyright © 2020-2023  润新知