Java基础语法-数据类型转换

数据类型转换:

强制转换:从高到低,可能回出现内存溢出、或者精度问题

自动转换:从低到高

从低到高的顺序:byte  short  char  int  long  float  double

int a = 128;
byte b = (byte)a; //-128(byte最大表示127,强制类型转换导致了内存溢出)
double c = a;  //128.0  自动转换

  操作比较大的数字时,注意溢出

 

内存溢出的问题

int money = 10_0000_0000;//jak7新特性  输出1000000000
int year = 20;
int total = money * year;   //输出    -147...变成负数
long total2 = money * year;  //输出    依然是负数   虽然进行了自动类型转换,但在int转long之前,就已经内存溢出了
long tatal3 = (long) money * year;  //输出2000000000  因为在计算之前就先进行了int转long,计算时全部用long计算了

 

posted @ 2021-11-12 10:57  一半知半  阅读(31)  评论(0)    收藏  举报