equals 是值比较,==是比较内存
A==B,比较句柄,就是比较变量A,B的地址存放的东西,比如int A=0;String B="bbbb";那么变量A的地址方的就是0,B的地址却是放着存放"bbbb"的地址,比如是#FFFF000之类的。所以A==B就是比较0和FFFF000啦。
而A.equals(B),就是在A和B都是引用(对象句柄,就是存放了对象地址啦)时,比较A,B存放的地址里的内容。比如A="aaaa",b="aaaa",两个"aaaa"不管是不是同一个,A.equals(B)都是真。