| String s1 = "a"; String s2 = "b";
 String str6 = s1 + s2;
 System.out.println(str6 == "ab");
 步骤:
 1) 栈中开辟一块中间存放引用s1,s1指向池中String常量"a",
 2) 栈中开辟一块中间存放引用s2,s2指向池中String常量"b",
 3) 栈中开辟一块中间存放引用str5,
 4) s1 + s2通过StringBuilder的最后一步toString()方法还原一个新的String对象"ab",因此堆中开辟一块空间存放此对象,
 5) 引用str6指向堆中(s1 + s2)所还原的新String对象,
 6) str6指向的对象在堆中,而常量"ab"在池中,输出为false
 
 不知道这样讲 ,你是否能看懂。。希望对你有帮助吧!
 |