给定程序的输出是什么?( )
public class Test102 {
public static void main(String[] args) {
String s = "string102";
String t = "string" + (9 * s.length() + 3);
String u = "string" + 102;
System.out.println( (s==t) + "-" + (s==u) );
}
}false-false
false-true
true-false
true-true
t的值是“string84”
因为内容不同,所以s != t
u虽然经过计算才能得到,但实际上,都是常量,编译器编译时会直接产生“string102”,这与s是一样的,使用常量池的“string102”。所以s == u
因为内容不同,所以s != t
u虽然经过计算才能得到,但实际上,都是常量,编译器编译时会直接产生“string102”,这与s是一样的,使用常量池的“string102”。所以s == u