String常量池问题及String对象的intern方法理解和分析
String中的final用法和理解
final StringBuffer a = new StringBuffer("111"); final StringBuffer b = new StringBuffer("222"); a=b;//此句编译不通过 final StringBuffer a = new StringBuffer("111"); a.append("222");//编译通过
[1] String a = "a1"; String b = "a" + 1; System.out.println((a == b)); //result = true String a = "atrue"; String b = "a" + "true"; System.out.println((a == b)); //result = true String a = "a3.4"; String b = "a" + 3.4; System.out.println((a == b)); //result = true
[2] String a = "ab"; String bb = "b"; String b = "a" + bb; System.out.println((a == b)); //result = false
[3] String a = "ab"; final String bb = "b"; String b = "a" + bb; System.out.println((a == b)); //result = true
[4] String a = "ab"; final String bb = getBB(); String b = "a" + bb; System.out.println((a == b)); //result = false private static String getBB() { return "b"; }
String s = "a" + "b" + "c";
String a = "a"; String b = "b"; String c = "c"; String s = a + b + c;
StringBuffer temp = new StringBuffer(); temp.append(a).append(b).append(c); String s = temp.toString();
public class Test { public static void main(String args[]) { String s = null; for(int i = 0; i < 100; i++) { s += "a"; } } }
public class Test4 { 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);//false System.out.println(s.intern() == a);//true } }