zoukankan      html  css  js  c++  java
  • 类型转换

    类型转换

    由于Java时强类型语言,所有要进行有些运算的时候,需要用到类型转换。

     

    ------------------------------------------------------------>

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

     

             int i =128;
             byte b = (byte) i;//内存溢出
     
             //强制转换 (类型)变量名     高--低
             //自动转换       低--高
     
             System.out.println(i);  //128
             System.out.println(b);  //-128

    而当换成double时,则不会溢出

     

             int i =128;
      double b = i; //低-->高 自动转换
     
             System.out.println(i);  //128
             System.out.println(b);  //128.0

     

    注意点:

     1.   不能对布尔值进行转换
     2.   不能把对象类型转换为不相干的类型
     3.   在把高容量转换到低容量的时候,强制转换
     4.   转换的时候可能存在内存溢出,或者精度问题!

     

    精度问题

     System.out.println((int)23.7);  //23
     System.out.println((int)-45.89f);   //-45

     

    char转换成int类型

     char c = 'a';
     int d = c+1;
     System.out.println(d);  //98
     System.out.println((char)d);    //b

     

    补充

     //操作比较大的数的时候,注意溢出问题
     //JDK7新特性,数字之间可以用下划线分割
     int money = 10_0000_0000;
     System.out.println(money);
     int years = 20;
     int total = money*years;    //-1474836480,计算的时候溢出了
     long total2 = money*years;
     System.out.println(total2); //默认是int,转换之前已经存在问题了?
     
     long total3 = money*((long)years); //先把一个数转换为long
     System.out.println(total3);
     
     //L     l   在定义long时多用大写L少用l

     

  • 相关阅读:
    第十八课 顺序存储线性表的分析
    第十七课 StaticList和DynamicList实现
    第十六课 顺序存储结构的抽象实现
    第十五课 线性表的顺序存储结构
    第十四课 线性表的本质和操作
    第十三课 类族结构的进化
    第十二课 顶层父类的创建
    第十一课 异常类构建
    HDU 5773The All-purpose Zero
    HDU 5755 Gambler Bo
  • 原文地址:https://www.cnblogs.com/helloxiaolu/p/13233447.html
Copyright © 2011-2022 走看看