类型转换

类型转换

  1. 强制类型转换(高-->低)

  2. 自动类型转换(低-->高)

 

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

 

低---------------------------------------------------------------->高

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

整数中,占字节多的优先级高;小数优先级比整数高;

在运算中,不同类型的数据先转化为同一类型,然后进行运算

 

public class Demo05{
   public static void main(String[] args){
       int i = 128;
       byte b = (byte)i;//强制类型转换,高-->低;(类型)变量名
       System.out.println(i);//128
       System.out.println(b);//-128(内存溢出,出错)
  }
}

注意!

  1. 不能对布尔值进行转换;

  2. 不能把对象类型转换为不相干的类型;

  3. 在把高容量转换到低容量时,强制转换;

  4. 转换的时候可能存在内存溢出,或者精度问题!

 

比如
public class Demo05{
   public static void main(String[] args){
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45
       char c = 'a';//97
       int d = c+1;//98
       System.out.println(d);//98
       System.out.println((char)d);//b
  }
}

 

 

public class Demo06{
   public static void main(String[] args){
       //操作比较大的数时,注意溢出问题
       //JDK7新特性,数字间可用下划线分割
       int money = 10_0000_0000;
       int years = 20;
       int total1 = money*years;
       System.out.println(total);//-1474836480,计算时溢出了
       long total2 = money*years;
       System.out.println(total2);//-1474836480,默认是int,转换前已经出问题了
       long total3 = money*((long)years);//先把一个数转化为long
       System.out.println(total3);//20000000000
}
}
posted @ 2022-07-17 15:57  不爱吃香菜呢  阅读(35)  评论(0)    收藏  举报