区别: ==比较的是两个实例或变量指向的内存地址是否相同,而equals()比较的是比较对象所指向的内存地址的值是否相同。
String a=new String("1"); //先在常量池存放1,在复制到堆中,a指向堆中的1
String b=new String("1");//检查得常量池中已经存在1,直接去堆中复制一个1.b指向堆中的这个1
String aa="2";//直接在常量池中建立2
String bb="2";//bb也指向常量池中的2
System.out.println(a==b); //false
System.out.println(a.equals(b)); //true
System.out.println(aa==bb); //true