1.==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.==是指对内存地址进行比较
equals()是对字符串的内容进行比较
3.==指引用是否相同
equals()指的是值是否相同
String foo = "loveu";
String bar = "loveu";
System.out.println(foo == bar); // 输出为 true
System.out.println(foo.equals(bar)); // 输出为 true
String foo = new String("loveu");
String bar = new String("loveu");
System.out.println(foo == bar); // 输出为 false
System.out.println(foo.equals(bar)); // 输出为 true
Java中 equals() 和 == 的区别:
http://blog.csdn.net/zhaizu/article/details/38556241
java:String使用equals和==比较的区别
https://www.cnblogs.com/tinyphp/p/3768214.html
深入剖析Java中的装箱和拆箱:
http://www.cnblogs.com/dolphin0520/p/3780005.html
Java内存分配全面浅析: