类型转换

在运算中,不同数据类型运算,必须要先转换为相同数据类型,再运算

 

基本数据类型的优先级

有低到高:

byte<short<char<int<long<float<double

 

转换类型

1.强制类型转换

由高到低(由高容量到低容量)

注意:

1.boolean不能强制转换

2.不能将对象类型转换为不相干类

3.由高容量到低容量,强制转换

4.转换可能存在内存溢出,或精度问题

2.自动转换

由低到高,自动转换

 

 

拓展及注意细节

在操作较大数时,在jdk1.7以后,可用下划线(_)来区分位数,便于观看,且输出不会显示下划线

 int i=10_0000_0000;
  System.out.println(i);//1000000000

 

 

 

操作较大的数会存在溢出问题:

int i=10_0000_0000;
int j=20;
int result=i*j;
System.out.println(result);//-1474836480

这时要注意类型转换

int i=10_0000_0000;
int j=20;
long result=i*(long)j;//20000000000
System.out.println(result);

如果是long result=i*j,则不能。

是先将i*j计算出来,结果为int,再将结果强制转换为long,这是结果为-1474836480

posted @ 2020-04-19 08:53  DannyBoy~  阅读(103)  评论(0编辑  收藏  举报