java基本数据类型转换规则

数据类型的转换是保证数据精确度的一种手段。

  • 2个基本事实
  • 自动转化
  • 强制转化
  • 编译器的优化

2个基本事实事实
-** 浮点数常量默认为double**
float a=3.5;// 此处将会由doube-->float造成数据丢失

自动转化
转化原则:数据类型的取值范围小的自动转化为数据类型取值大的,大的转化为小的需要强制转化
特例:char 和short,char 和byte之间都不能进行相互转化


byte a=4;
int b=a;//byte-->int 大-->小 自动转化

强制转化
1.int a=5;
byte b=(byte)a;//int-->byte 小-->大 强制转化 a的值小于b的取值范围 不会出现数据损失
2.int a=129
byte b=(byte)a//该处和上面一样 但129超出了byte的取值范围 会出现数据损失

编译器的优化处理
当byte char short或者他们与整形常量之间之间的任意2个进行计算时,编译器为了保证其得到的结果不溢出,会将其计算答案转化成int数据类型


该处容易被认为了常量默认为int byte和int计算byte转为int 最后答案为int 这样理解不对

只有将其整体转化才行

这样才不会报错

posted @ 2022-11-06 14:41  一往而深,  阅读(197)  评论(0编辑  收藏  举报