/**
* ==,equals的区别
*/
@Test
public void test3(){
/*
* 注:所有new出来的对象都会在栈中存放一个堆内存地址,这个内存地址指向指定值.
* ==:
* 比较栈中的值和内存地址
* equals:
* 比较值,包含堆内存中的值
*/
String d="abc";
String a="abc";
String b=new String("abc");
String c =new String("abc");
System.out.println(a.equals(b));//true 值相同
System.out.println(b.equals(c));//true 值相同
System.out.println(b==c);//false
System.out.println(a==b);//false
b=c;//让c的内存地址也指向b的内存地址,这时使用==比较的堆内存地址就是一样的.
System.out.println(b==c);//true
System.out.println(a.equals(d));//true
}