java中:System.out.println("String".replace('g','G')=="String".replace('g','G')); 为什么返回false
发布网友
发布时间:2022-04-23 00:11
我来回答
共3个回答
热心网友
时间:2023-10-09 03:37
第一个是调用方法返回了两个String对象
第二个是使用了常量池,得到的是一个String对象
热心网友
时间:2023-10-09 03:37
StringBuffer a = new StringBuffer("aa");
StringBuffer b = new StringBuffer("aa");
System.out.println(a==b);//false
String 的 replace 方法内部替换的时候采用正则替换,用新创建的StringBuff连接然后返回,已经不是同一个对象了,==比较的是引用,不是值; 想了解更多,你可以看源码
热心网友
时间:2023-10-09 03:38
字符串的比较最好用equals,==这个
一般判断的是内存地址,
equals是比较字符串是否相同。