java类型转换

类型转换

因为java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

  1. 由低容量到高容量排序
    byte,short,char–>int–>long–>float–>double
  2. 运算时,不同类型的数据先要转换为同一类型,然后在进行运算。
  3. 小数的优先级一定大于整数
  4. 由高到低必须强制转换
  5. 自动转换由低到高
 public class date {
  public static void main(String[] args) {
       int a = 130;
       byte b = (byte) a;  //由高到低必须强制转换 int-->byte
            //转换格式为( 转换类型)变量名
       double c =a; //由低到高自动转换 int-->double
     
      System.out.println(a);//运行结果为130
      System.out.println(b);//运行结果为-126(内存溢出)
      /*
      由于byte的最大值为127;最小值为-128.
      所以出现了(内存溢出)导致数据输出不准确
       */
------------------------------------------------------------------       
       System.out.println((int)12.65);//输出结果为12
       System.out.println((int)15.65f);//输出结果为15
       //输出结果精度不够   
---------------------------------------------------------------------    
       char d = 'x';
       int e =  d+1;
       System.out.println(d);
       System.out.println((char) e);
       //字符的强制转换

}
}

注意点:

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

操作比较大的数的时候,注意溢出问题。

public class date {
    public static void main(String[] args) {
      int money = 10_0000_0000;
      int years = 20;
      int total = money*years;
      long total2 = money*years;
      //先是用两个int类型计算(int本就出错)然后在转换为long(也为错)
      long total3 = money*((long)years);
      /*
      先把years转换为long类型
      然后不同的数据类型要转换为同一数据类型
      所以money也会被转换为long类型
      从而输出成功
       */
      System.out.println(total);
      //输出结果为-1474836480
      System.out.println(total2);
      //输出结果为-1474836480
      System.out.println(total3);
      //输出结果为20000000000
    }
}

你可能感兴趣的:(JAVA面对对象程序设计,java,开发语言)