String s1 = new String("amit");
String s2 = s1.replace('m','r');
String s3 = "arit";
String s4 = "arit";
System.out.println(s2);
System.out.println(s3);
System.out.println(s2 == s3);
System.out.println(s3 == s4);
运行结果是:
arit
arit
false
true
应该两个都是true才对呀。
完蛋,我不知道你们谁说的是正确的,都挺有道理的。
追答都是对的,表达方式不一样而已,要搞清楚这个问题研究下==和equals 方法的区别就知道了
本回答被网友采纳完蛋,我不知道你们谁说的是正确的,都挺有道理的。
追答==。这个对于基本类型来说。只比较值是否相等。而对于变量来说。是比较内存地址是否相等。因为s3和s4引用常量池同一个常量“arit”,所以s3==s4.即它们的地址相等、而s2==s3是false是因为s2是一个String的对象,s2有自己的独有的内存空间地址,所以s2==s3的地址是不同的。为false。懂了么?
本回答被提问者采纳完蛋,我不知道你们谁说的是正确的,都挺有道理的。