求大神回复,关于equals和==的问题

equals 在my eclipse 里内部代码是return(a==b)也是使用的==,为啥不能用equals比较8种数据类型?

新手常见问题,关于==和equals()方法。
首先,我们都知道有这两种数据类型:值类型和引用类型,但二者究竟有什么区别?首先要理解Java中的对象,来看这样一条语句:
图片说明
这条语句的含义是:创建一个Object对象,让c引用这个对象,注意c没有保存该对象,它保存的是这个对象在内存中的地址。
其次,要理解==运算符的含义,它的含义是:比较等号两边的内容是否相等,如果是基本类型,比较的是值;如果是引用类型,那么比较的是地址是否相同。
回到你的问题,为什么不用equals比较8种类型,答案肯定是可以的,但比较的结果由equals的实现决定。比如下图:
图片说明

equal不能用于基本数据类型。只能用于类变量,对于基本数据类型要用其包装类。

byte,short,char,int,long,float,double,boolean 这些“值”类型两种比较是一致的。
但是字符串就是“对象”类型,除了预定义的常量字符串,大多数是动态创建的,两种比较不一致(equals比较值、==比较指针)

== 比较内存地址 equals比较的是值