永发信息网

为何将一个StringBuffer反转后与原来的值相等?

答案:3  悬赏:80  手机版
解决时间 2021-11-21 20:14
  • 提问者网友:無理詩人
  • 2021-11-20 23:54
为何将一个StringBuffer反转后与原来的值相等?
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-11-21 01:14
原因是他值是改变了但是地址值没有变过, 还有个是下面那个equals方法 你可以去看下StringBuff里的那个equals方法
全部回答
  • 1楼网友:蓝房子
  • 2021-11-21 02:13
sbf.reverse()反转的是他自身,返回的也是自身,你把自己与自己相比较当然永远相等了
  • 2楼网友:煞尾
  • 2021-11-21 01:48
因为你在第一次reverse的时候sbf已经变成cba,stringbuffer 再调用reverse之后本身的值改变了
而如果是string的话就不一样了,比如string在substring之后返回的string对象的值就没变
即sbf.reverse() 的值是cba, sbf也是cba所以就相等了

你用一下代码验证一下,你就明白了,O(∩_∩)O~
public static void main(String []args){
String str = "abc";
StringBuffer sbf = new StringBuffer(str);
System.out.println(sbf);
System.out.println(sbf.reverse());
System.out.println(sbf);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯