zoukankan      html  css  js  c++  java
  • 数据类型转换-运算符

    ##基本数据类型转换
     - 默认顺序是
      * byte->short->int->long->float->double
     - 自动提升规则(针对二元操作符)
      * 所有的byte,short,char型会自动提升为int型
      * 若一个操作数是long类型,则另一个操作数也会转换为long类型,计算的结果类型也是long类型
      * float类型,double类型跟long类型的提升规则一样 
      
     - 注意
      * 默认浮点型是double类型,默认整型是int类型
      * 举例说明:
      
       ```

           float f1=4.4;//编译会报错;因为4.4默认是double类型;可以强制转换解决问题
           float f2=4.4f;//定义float型时要加f
           long d1=100;//默认转型:100将会由int转换为long类型
           long d2=100L;//定义long类型时加L
        
         
      ```
      
    ## 理解代码 i=i++
     

       ```

          int i=1;
          i=i++;
          System.out.println("i="+i)//i=1;
          
           分析:i=i++;
            1.首先在内存中定义一个临时变量temp存储i的值
              int temp=i;//temp=1;
            2.执行i++;
              i++;//i=2;
            3.再将临时变量temp值赋值给i
              i=temp;//i=1
            
            总结:是先存储i,再执行i++,最后执行赋值操作
          
            练习:i= i+++++i; //i=4;
           

       ```

    ##数据类型补充的小问题:
    - 1: 在定义Long或者Float类型变量的时候,要加L或者f。
         整数默认是int类型,浮点数默认是double。
      
    - 2   byte,short在定义的时候,他们接收的其实是一个int类型的值。
      这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。
      
        2:byte值的问题

            byte b1 = 127;
            byte b2 = (byte)128; //-128(从-128~127一直循环)128-127=1;即从第一个 -128 开始循环
            byte b3 = (byte)129; //-127
            byte b4 = (byte)130; //-126
        
            byte的范围:-128 ~ 127
        
            128:10000000
            -128:10000000 (这里的1即是符号位,也是数值位)
        
    - 3:数据类型转换之默认转换
        byte,short,char -- int -- long -- float -- double
        
        long: 8个字节
        float:4个字节
        
        A:它们底层的存储结构不同。
        B:float表示的数据范围比long的范围要大
            long:2^63-1
            float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

    4:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
        
        可以。因为java语言中的字符占用两个字节。
        
        Java语言采用的是Unicode编码。
         
     

      

  • 相关阅读:
    【设计模式】适配器模式
    【设计模式】原型模式
    【设计模式】建造者模式
    【设计模式】抽象工厂模式
    我的稳定的SpingBoot项目依赖
    Vue中使用iconfont
    Vue-兄弟组件传值
    CSS让高度百分百的方案
    css修改overflow滚动条默认样式
    CSS去除input和textarea点击选中框
  • 原文地址:https://www.cnblogs.com/yuefeng123/p/7341877.html
Copyright © 2011-2022 走看看