• Java中的数据类型


    Java数据类型转换

    基本数据类型之间的运算规则:

    前提:只说7种基本类型之间的运算,除boolean之外。

    1.自动类型提升

    结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

    byte、char、short ---> int ---> long ---> float ---> double

    特别:当byte、char、short三种类型的变量做运算时,结果为int型,包括同类型间。

    此时的容量大小指的是:表示数的范围的大和小。比如float容量要大于long的容量

    • 易疏忽的几种运算

      byte b1 = 2;
      int i1 = 129;
      int i = b1 + i1;
      long l = b1 + i1;
      float f = b1 + i1;
      System.out.println(i);	//131		//最小也得用int接收,比他大的更可以
      System.out.println(l);	//131
      System.out.println(f);	//131.0
      
      char c = 'a';
      int i2 = 10;
      int i3 = c + i2;					//最小也得用int接收,比他大的更可以
      System.out.println(i3);				//107
      

    2.强制类型装换

    概念:自动类型提升运算的逆运算。

    • 需要使用强转符:( )

    • 注意点:强制类型转换,可能导致精度损失。

    /**
             * 强制类型转换
             */
            //1.精度损失举例1
            double d = 12.3;
            int i4 = (int)d;            //截断操作,并不是四舍五入
            System.out.println(i4);     //12
    
            //2.没有精度损失
            long l1 = 123;
            short s = (short)l1;
            System.out.println(s);      //123
    
            //3.精度损失举例2,这个涉及到二进制
            int i5 = 128;
            byte b = (byte)i5;
            System.out.println(b);      //-128
    

    3.补偿编码情况

    //编码情况1:
    long l2 = 12312;            //这里没有加“l”或“L”,但是并没有报错,原因:12312默认为int,发生了自动类型转换提升。int转long
    System.out.println(l2);
    
    long l3 = 45345645433433;   //编译失败,45345645433433的大小超出了int的范围,要想为long类型,必须加“l”或“L”
    
    float f1 = 12.3;            //编译错误,12.3默认为double,double不能直接转float,可以强制转换。
    
    //编码情况2:
    byte b2 = 12;
    byte b3 = b2 + 1;         //1为int型,b2 + 1为int,int不能转byte
    
    float f2 = b2 + 12.3;     //12.3默认为double,b2 + 12.3为double,double不能转float
    
    相信自己,你能行!!!
  • 相关阅读:
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解Linux系统调用
    基于mykernel 2.0编写一个操作系统内核
    如何评测软件工程知识技能水平?
    创新产品的需求分析:未来的图书会是什么样子?
    案例分析:设计模式与代码的结构特性
    业务领域建模Domain Modeling
    工程实践用例建模
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    面向对象第三单元作业反思与总结
  • 原文地址:https://www.cnblogs.com/byd-hold-on/p/14091688.html
Copyright © 2020-2023  润新知