在Java中,String str ="abc"和String str2 = new String("abc");创建方式是不一样的,前者是先查找地址池中有没有,如果没有再在池中创建对象,而后者new String的方式则是在栈中先创建一个对象,然后再在池中创建一个对象,无论此时池中有没有此对象。
public static void main(String[] args){
String str ="abc";
String str2 = new String("abc");
String str3 = new String("abc");
System.out.println(str==(str2));
System.out.println(str2==(str3));
}
这个例子输出的结果是 false false 能够很好的说明这个问题