转换共分为三种转换
一.自动转换
二.强制转换
三.基本数据类型与string的类型转换
一.自动转换
将数据类型比作房子,数据在房子里面。自动转换就是小房子转化到大房子。有多种数据类型混合运算时,在计算之前,容量小的数据类型转换为容量大的数据类型。防止房子不够大,会使里面的数据遭到损坏。
细节:
1.byte,short,和char类型在计算之前,会转化为int类型。
2.byte short和char,不会发生自动类型转换。
3.Boolean,比较特殊,他的这个房子比较高大上,不会发生类型转换。
4.自动提升原则:表达式的结果会自动提升为操作数中容量最大的数据类型。
二.强制转换
和自动转换反着来,这次是大房子转换为小房子。要加上强制类型转换符()
char c1=(char)2.
容量大的数据类型转换为容量小的数据类型。
后果:1:会使精度损失。就比如说:房子在转换过程中,原先是一个楼房,装饰的非常精美,变成了现在的农村的平方房,会造成里面的数据,生活水平下降。原先是一个double类型的,转换为int类型的,1.9->1,精度发生了损失,不精确了。
2:数据溢出。房子在转换的过程中,原先房子容量大,换成了容量小的房子,里面的数据放不下了,就会溢出来,造成数据丢失。
细节:1:在对一大串在一起的数据进行数据类型转换时,有可能会顾不过来,心有余而力不足,只会转换一部分,剩余的部分不会进行转换,所以为了使所以的类型都会转换,要给他们上保护壳,给他们一个小括号,进行保护。
2:char类型可以保存int常量,不可以保存int型的常量
char c1=100;char类型这个房子的容量大,可以放开100这个值,100是个常量数据
但是放不开int型的变量,变量用来存储常量数据的,变量跟房子一样大,而且此时这个变量是int型的变量,大房子转换小房子要加上强制类型转换符。