Stringクラシックメモリ指向面接問題
3026 ワード
1
public static void main(String[] args) {
String a = "a1";
String b = "a" + 1;
System.out.println(a == b);
}
2 public static void main(String[] args) {
String a = "ab";
String bb = "b";
String b = "a" + bb;
System.out.println(a == b);
}
3 public static void main(String[] args) {
String a = "ab";
final String bb = "b";
String b = "a" + bb;
System.out.println(a == b);
}
4 public static void main(String[] args) {
String a = "ab";
final String bb = getBB();
String b = "a" + bb;
System.out.println(a == b);
}
private static String getBB() {
return "b";
}
5 private static String a = "ab";
public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String s = s1 + s2;
System.out.println(s == a);
System.out.println(s.intern() == a);
}
6 private static String a = new String("ab");
public static void main(String[] args) {
String s1 = "a";
String s2 = "b";
String s = s1 + s2;
System.out.println(s == a);
System.out.println(s.intern() == a);
System.out.println(s.intern() == a.intern());
}
=========================================================================================================
3、 1)true : ( ), , 。 2)false String , , String 。 , String 。 3)true , String , 。 4)false :final String bb = getBB(); final String bb = new String(“b”); 。 return “b” String ”b”, bb final。 final , bb String , getBB() String ,final String String 。 5)false,true intern() 。JDK API intern() : 。 , String 。 intern , String ( equals(Object) ), 。 , String , String 。 : s t, s.equals(t) true ,s.intern() == t.intern() true。 intern 。 。 。 6)false,false,true