写一个今天在编程过程中的一个小问题,即StringBuffer和String的equals()方法的区别。
StringBuffer buffer1=new StringBuffer("67498");
StringBuffer buffer2=new StringBuffer("67498");
System.out.println(buffer1.equals(buffer2));
System.out.println(buffer1.toString().equals(buffer2.toString()));
如上的代码,输入结果分别为false和true,一开始很好奇为什么有这样的结果,百度之后发现StringBuffer里的equal()比较的是地址是否相同,而String里的equal()比较的是内容是否相同。
StringBuffer buffer3=buffer1;
System.out.println(buffer1.equals(buffer3));
如果再加上这么两行代码,会发现输出结果是true,所以验证了上面的说法是正确的。