直接赋值是在方法区的字符串常量池中去找,有就返回该字符串的指针,
没有找到就创建该字符串并返回指针
..
String s1,s2,s3,s4;
s1 = "hello";
s2 = "world";
s3 = s1 + s2;
/*
* 这里s1和s2两个变量做拼接,我拿s3去接收
*那么s3得到的指针肯定指向一个字符串"helloworld"
*/
s4 = "helloworld";
//我这里直接给s4赋值
//那么s4是在字串符常量池去找的"helloworld"
(s3 == s4) //false
//这里两个指针不相等
//是说明s3指向的"helloworld"不在方法区的字符串常量池吗?
//还是说s3和字符串常量池中的"helloworld"之间还有一个中间参数