代码分4种情况分析:
1
String a = ''m1'';
String b=''m''+1; //在编译期值是否确定,能确定,所以编译时确定为m1;
System.out.println(a==b) // 输出为 true
2
String a= 'b1';
int b1= 1;
String b="b"+b1;//在编译期确定不了,在运行期才能确定
System.out.println(a==b) // 输出为 false
3
String c="c1";
final int cc=1;
String c1="c"+cc;//常量在编译器可以确定
System.out.println(c=c1) // 输出为 true
4
String d = "d1";
final intt dd = getD();//从方法中返回,在运行期才运行方法
String d1="d"+dd;
System.out.println(d==d1) // 输出为 false
public static int getD(){
return 1;
}