java中 判断 if( 1 ==1.0) {} 是相等的, 这里是做了隐式类型转换吗?

1默认应该是int类型的
1.0默认因该是double类型的
如果是的话 是都转为int 了 还是转为double了 ?

这里第一个涉及到"= =“运算符比较的内容是什么,不管是引用类型,还是基本类型,”= =“均是比较变量的地址;第二个是基本数据类型的转换,隐式转换除了发生在赋值、算数运算(+、-等)之外,在比较运算符的时候也会发生。

首先隐式类型转换你可以说是自动类型转换要求是转换从低级到高级。
自动类型转换必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

img

但是double转成int就不再是自动类型转换,你必须通过代码进行强制类型转换,比如
int a= (int)5.3;
a=5
强制类型转换可能会造成精度损失,就如上面的那样

都转为doblue了

你应该知道判断式其实是一种运算,叫关系运算
运算就要涉及到类型转换
凡类型转换肯定是把小类型转大类型啊

转double,小的向大的转,先进行类型转换,在进行比较