==:可以比较基本类型和引用类型。基本类型比较的是值是否相同,而引用类型比较的是地址值是否相同。
equals:只能比较引用类型。默认情况下,比较的是地址值是否相同,而String类重写了equals()方法,比较的是内容是否相同
String s1=new String("hello")创建了2个对象,一个是方法区的"hello",一个是堆中的new String,s1的地址值指向堆内存中的地址,
String s2="hello"就只在方法区中创建了一个“hello”对象,s2的地址值指向方法区中的地址
但是s1和s2的内容都是"hello"
System.out.println(s1==s2) false; System.out.println( s1.equals(s2)) true |