又一equals和==区分的问题
package app;
public class jdbc {
public static void main(String[] args) {
Double d = new Double (4.2);
System.out.println(d.equals(4.2));
System.out.println(d==4.2);
}
}
运行结果:true
true
第一个true容易理解,Double类里重写了equals方法,equals比较Double对象里值是否相等,
第二个如何理解呢?
按照常理,d是一个对象的引用,"栈"里存放的是对象的地址,怎么会等于4.2呢?
高手赐教