* String s = new String("hello")和String s = "hello";的区别
* equals:比较引用类型默认也是比较地址值是否相同,
* 前者会创建2个或者1个对象,后者会创建1个或者0个对象。(因为前者去方法区找如果找到了"hello"就不用创建了)
* equals:比较引用类型默认也是比较地址值是否相同,
* 而String类重写了equals()方法,比较的是内容是否相同
package 常见对象_String;
public class StringDemo3 {
public static void main(String[] args) {
String s2 = new String("hello");//创建2个对象 在方法区创建"hello",在堆里面创建new s2对象
String s1 = "hello";
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
}
}
内存图:
总结:==和equals的区别?
A:==,基本类型:比较的是值是否相同你个;
引用类型:比较的是地址值是否相同
B:equals(),只能比较引用类型,默认请情况下,比较的是地址值是否相同,但是
我们可以重写该方法