Victor_Xu
2016-04-02 20:28
s3==s4 false??????? but why?
String s = "xxxx";
创建s之前系统会先在"池子"中查找是否已经存在这个字符串, 如果存在则直接符号该字符串的句柄
如果不存在, 系统会创建一个新"xxxx"字符串, 并返回句柄, 以后再有"xxxx"被要求创建, 系统不会创建新的,而是直接返回已经存在的字符串的句柄
String s = new String("xxxx");
系统不会去"池子"中查找, 直接在内存中新开辟一块空间, 初始化为"xxxx",并返回句柄
我感觉s3和s4的地址应该一样,可能有空格吧
看了“等待天亮”的回答,明白了。字符串之间的比较,是比较内存首地址是否相同,而不是内容。
Java入门第三季
409792 学习 · 4340 问题
相似问题
回答 5
回答 4