• java7


    不能(直接)把一个大的数据类型赋值给小的类型
    强制类型转换,但会造成数据的溢出(导致数据的不正确性)

        int a = 200;
        byte b = 5;       //范围-128到127
        b = (byte)a;   //将a类型强制转换成b类型,括号中写出最终转换成的类型,但超出b的数据类型所控制的范围会造成数据的溢出(数据的不正确性)
        System.out.println(b);
    【-56】
    

    注意:

        byte b = 3;
        short c = 5;
        int g = 4;
        double w = 6;
        float e = 7;
        boolean t = true;
        char h = 'a';    //A---65,a----97
    

    1.未参与运算:最前面不需要加转换后的数据类型

      b = (byte)c;   //将c的数据类型short强制转换成b的数据类型byte
      System.out.println(b);
    【5】
    

    2.参与运算时,两端的数据类型要保持一致

        short b1 = b+t;
        System.out.println(b1);
    【error】
    

    3.如果为同为数值型,则自动将小的数据类型转变为大的类型,但是jvm在运算(相加)时的
    最小数据量类型为int类型(输入的数据类型小于int时,会自动给你转成int)

        double w1 = (double)b+w;      //b,w同为数值型,但w的类型位数大于b的类型位数,
     【  自动类型转换】                                                //所以将b的数据类型转换为w的数据类型
        System.out.println(w1);
     【9】
    

    short c1= c+(short)b;   //b,c同为数值型,但c的类型位数大于b的类型位数,本应将b的类型byte转换
                                                                    //成c的类型short,但是由于jvm识别的最小数据类型为int,所以最后强制转换为int d = (int)c+(int)b;
        System.out.println(c1);/
     【error】
        int c1= (int)c+(int)b;
        System.out.println(c1);
       【8】
    
    如果真的想转换成short类型,得这样写:
    
       short c2 = (short)(b+c)
        System.out.println(c2);
    【8】
    OR
      b = (short)(b+c);
        System.out.println(b);
    【8】                 *数据类型+新的变量名称    OR       原变量名称*                                             
       System.out.println(h+b);//字符和整数小数类型可以相加减
    【100】
    
  • 相关阅读:
    置换python2.7.13的opcode遇到的一些坑
    不思议迷宫:逆向后的放置play
    Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换
    MJRefresh自定义刷新动画
    UIScrollView循环滚动1
    IOS开发中如何实现自动检测更新APP
    ios极光推送快速集成教程
    IOS中程序如何进行推送消息(本地推送,远程推送)2(上)
    IOS中程序如何进行推送消息(本地推送,远程推送)2(下)
    IOS中程序如何进行推送消息(本地推送,远程推送)
  • 原文地址:https://www.cnblogs.com/-zero/p/10201095.html
Copyright © 2020-2023  润新知