String s1 = "aaaa";
String s3 = "bbbb";
String s4 = s3.replace('b', 'a');
s1是直接从字符串常量池中,直接创建字符串对象,赋值给了s1
s4,,等价于 String s4 = new String(chs); //这里的chs,是替换后结果的char[],即{'b' ,'b' ,'b' ,'b'}
相当于,先在堆内存开辟一个空间,再把字符串常量池中的"aaaa"赋值给堆内存。
==比较的是地址值,两个对象的指向不同,所以false。 |