public class FooDemo
{
public static void main(String[] args)
{
float f = 4.2F;
Float g = new Float(4.2F);
Double d = new Double(4.2);
System.err.println(f == g);
System.err.println(g == g);
System.err.println(d == f);
System.err.println(d.equals(f));
System.err.println(d.equals(g));
System.out.println(g.equals(4.2));
}
}分别解释一下执行的结果:
true
true
false
false
false
false
{
public static void main(String[] args)
{
float f = 4.2F;
Float g = new Float(4.2F);
Double d = new Double(4.2);
System.err.println(f == g);
System.err.println(g == g);
System.err.println(d == f);
System.err.println(d.equals(f));
System.err.println(d.equals(g));
System.out.println(g.equals(4.2));
}
}分别解释一下执行的结果:
true
true
false
false
false
false
(java现在也进行了自动装箱和拆箱操作 )
所以第一个是true 第二个和它本身当然是true不同类型间精度是不一样的。
对象的引用不一样
所以后面都是false