为什么不同的包装类不能够进行用==进行比较.??他们不还是引用吗?

比如
Integer a = 127;
Long b = 127l;

System.out.println(a==b);会报错

这不还是地址(引用)的比较吗??

这样写确定没问题?我试运行的时候,提示我他俩类型不一样,不能用==比较。。Incompatible operand types Integer and Long

jdk1.8下运行没有报错,可能是你的环境问题

我试了一下 ,不同的类的对象好像都不能用==比较.
但是子父类可以用==比较
比如Person p = new Person();
Student s = new Student();
System.out.println(p==s);
不会报错

为啥呢??
求教大神什么时候可以用== 比较

java中==是比较对象是否是同一个对象,即比较地址,如果要比较数值用equals()