public static void main(String args[]) {
final double y = 0.0;
int z = 0x00001;
int t = z * 2;
t -= (z + z);
Object x = y / t;
System.out.println(t);
System.out.println(x.equals(t));
}
O que imprime?
public static void main(String args[]) {
final double y = 0.0;
int z = 0x00001;
int t = z * 2;
t -= (z + z);
Object x = y / t;
System.out.println(t);
System.out.println(x.equals(t));
}
O que imprime?
0
false
Justificativa:
0 - só fazer as contas
false - x é um java.lang.Double, t é um int que foi “boxed” para java.lang.Integer, e objetos de classes diferentes não podem ser “equal”.
Como assim o que imprime ???
tipo...
final double y = 0.0;
int z = 0x00001;
int t = z * 2;
t -= (z + z);
Object x = y / t;
System.out.println(t);
System.out.println(x.equals(t));
....
É isso msm ??? eu rodei o código... deu isso
É isso mesmo,
0 e false
O valor de X no fim é NaN, e t vale 0 mesmo.
se fizer:
isso sim é TRUE