目录

  • 代码
  • 结果
  • 分析

代码

public class Test {public static void main(String[] args) {String str = "abc";StringBuffer sb1 = new StringBuffer("abc");StringBuffer sb2 = new StringBuffer("abc");System.out.println(sb1 == sb2);System.out.println(sb1.equals(sb2));System.out.println(str.equals(sb1));}
}

结果

false
false
false

分析

sb1==sb2比较:

两个都是堆中对象,位置不同,所以引用不同,那么结果肯定是false

sb1.equals(sb2)比较:

点击equals()方法直接到了Object类中的equals()方法,说明StringBuffer类没有重写equals方法,所以结果也是false

public boolean equals(Object obj) {return (this == obj);
}

str.equals(sb1)比较:

由于str是String类型,所以使用String类中的equals()方法,我们直接来看该方法,如下:

public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;
}

由于sb1和str不是一个引用,毕竟在堆中的位置不同,其次StringBuffer对象和String类没啥关系,所以二元运算符的运算结果也是false,那么第二个if也不会执行,因此结果也是false

StringBuffer之间的比较、String和StringBuffer的比较相关推荐

  1. String、StringBuffer与StringBuilder类详解

    目录 一.String简介: 二.String的创建方式: 面试题一:String s = new String("abc");方式创建对象,在内存中创建了几个对象? 四.一个笔试 ...

  2. String以及StringBuffer的基本操作

    代码总结 package String和StringBuffer.exam;import java.util.Arrays;public class test {/*equals:比较的是内容,区分大 ...

  3. String StringBuilder StringBuffer三者之间的区别~~~

    String StringBuilder  StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...

  4. 关于String,StringBuffer和StringBuilder之间的区别和联系

    本文来说下关于String,StringBuffer和StringBuilder之间的区别和联系 文章目录 概述 String 和 StringBuffer StringBuilder 本文小结 概述 ...

  5. String、StringBuffer与StringBuilder之间区别

    String     StringBuffer     StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...

  6. [转]String、StringBuffer与StringBuilder之间区别

    String是一个不可变对象,每次对String对象操作时都是产生新的对象,然后将指向新的String对象,故如果涉及大量对String的操作时会造成资源的浪费. 一.Java String 类--S ...

  7. String、StringBuffer与StringBuilder之间区别 (转载)

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  8. String与StringBuffer的区别

    String与StringBuffer的区别 简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象. St ...

  9. String与StringBuffer 理解

    String的创建 String s = "hello";  JVM先根据内容"hello"查找对象,如果没有找到,则在heap上创建新对象,并将其赋予s1,否 ...

  10. java gson 解析string_Java之——深入解析String、StringBuffer、StringBuiler

    要说Java中什么哪个类用的最频繁,要数String类了.所以说,关于String .StringBuffer.StringBuilder 是有必要详细研究一下的. 那么这三者之间有什么区别,如何根据 ...

最新文章

  1. 2017年全球AI芯片公司大盘点
  2. windows 7下同时安装visual studio 2012和2010
  3. 【一分钟了解】1em等于多少px,由什么决定?
  4. eclipse wsdl2java_使用Eclipse的wsdl2java工具
  5. Gradle笔记——Gradle的简介与安装
  6. 因为爬虫失控,CTO和程序员双双被判刑
  7. vs2015软件系统开源_2015年开源亮点的多样性
  8. 4月还完债务,“真还传”大结局?罗永浩回应:纯属造谣...
  9. SQL Server上的审计表和数据版本控制
  10. 复变函数系列(三 ) - 复变函数的积分
  11. linux下mysql启动失败问题解决(CentOS7)
  12. BZOJ3517 翻硬币
  13. docker如何配置阿里云加速器
  14. vue CAD-dwg格式文件预览
  15. 2016版excel_想要下班直接打卡,这些Excel技巧可以帮到你
  16. 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类
  17. 文档服务器拓扑图,服务器网络结构拓扑图
  18. flex实现三栏布局
  19. Word控件Spire.Doc 【邮件合并】教程(三):如何创建邮件合并和合并文本值
  20. MATLAB:DTFT、DFT 相关题目学习

热门文章

  1. 礼盒抖动动画(CocosCreator)
  2. 金蝶K3提取在途订单数据并设置触发(可用于在途订单交期回复)
  3. Intel XEON L/E/X/W 系列的区别
  4. WORD2003相关问题
  5. 设计一个一元稀疏多项式简单计算器
  6. 从C、C++、Java到Python,编程入门到底学什么语言好?
  7. (1)简单易学—— 人脸检测 Tensorflow_MTCNN模型训练详细步骤(纯干货,适用于windows和ubuntu系统)
  8. 做自媒体如何获得更多的流量?
  9. 新版微信-微信公众号一键关注解决办法
  10. CentOS升级PHP到8.0