分为编译期和运行期;如果在编译器可以被创建,使用已有对象,否者创建新的对象
public class StringTest {
public static void main(String[] args) {
String i="wang";
String j="wang";
String x=new String("wang");
System.out.println(i==j);//字符串常量池之外创建一个对象
System.out.println(i==j);//都在字符串常量池中
System.out.println("____________四种情况______________________");
//分为编译期和运行期;如果在编译器可以被创建,使用已有对象,否者创建新的对象
String a="a";
String a1=a+1;
String a2="a1";
System.out.println(a1==a2);
final String b="b";
String b1=b+1;
String b2="b1";
System.out.println(b1==b2);
String c=getString();
String c1=c+1;
String c2="c1";
System.out.println("c1==c2");
final String d=getString1();
String d1=d+1;
String d2="d1";
System.out.println("d1==d2");
}
public static String getString(){
return "c";
}
public static String getString1(){
return "d";
}
}
true
true
____________四种情况______________________
false
true
false
false