String str1 = "haha"; //“haha”这个是放在字符串常量池里面
String str2 = new String("haha"); //这里new了个对象,这样就在堆内存中了
System.out.println(str1==str2); //==是比较内存地址的,false
——————————————————————————————————
String str1 = "haha"; //这里把"haha"放在了字符串常量池里面了
String str2 = "haha"; //jvm会在常量池里面对比是否有相同的字符串,如果有的话就直接把内存引用到之前的"haha"上面,而不会重新开辟空间,所以他们的内存地址是相同的
System.out.println(str1==str2); //true
——————————————————————————————————
equals方法是比较对象中的内容,不是说字符串比较就一定要用equals方法,只是这个用来比较字符串更合适一点 |