StringBuffer之间的比较、String和StringBuffer的比较
目录
- 代码
- 结果
- 分析
代码
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的比较相关推荐
- String、StringBuffer与StringBuilder类详解
目录 一.String简介: 二.String的创建方式: 面试题一:String s = new String("abc");方式创建对象,在内存中创建了几个对象? 四.一个笔试 ...
- String以及StringBuffer的基本操作
代码总结 package String和StringBuffer.exam;import java.util.Arrays;public class test {/*equals:比较的是内容,区分大 ...
- String StringBuilder StringBuffer三者之间的区别~~~
String StringBuilder StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...
- 关于String,StringBuffer和StringBuilder之间的区别和联系
本文来说下关于String,StringBuffer和StringBuilder之间的区别和联系 文章目录 概述 String 和 StringBuffer StringBuilder 本文小结 概述 ...
- String、StringBuffer与StringBuilder之间区别
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- [转]String、StringBuffer与StringBuilder之间区别
String是一个不可变对象,每次对String对象操作时都是产生新的对象,然后将指向新的String对象,故如果涉及大量对String的操作时会造成资源的浪费. 一.Java String 类--S ...
- String、StringBuffer与StringBuilder之间区别 (转载)
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...
- String与StringBuffer的区别
String与StringBuffer的区别 简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象. St ...
- String与StringBuffer 理解
String的创建 String s = "hello"; JVM先根据内容"hello"查找对象,如果没有找到,则在heap上创建新对象,并将其赋予s1,否 ...
- java gson 解析string_Java之——深入解析String、StringBuffer、StringBuiler
要说Java中什么哪个类用的最频繁,要数String类了.所以说,关于String .StringBuffer.StringBuilder 是有必要详细研究一下的. 那么这三者之间有什么区别,如何根据 ...
最新文章
- 2017年全球AI芯片公司大盘点
- windows 7下同时安装visual studio 2012和2010
- 【一分钟了解】1em等于多少px,由什么决定?
- eclipse wsdl2java_使用Eclipse的wsdl2java工具
- Gradle笔记——Gradle的简介与安装
- 因为爬虫失控,CTO和程序员双双被判刑
- vs2015软件系统开源_2015年开源亮点的多样性
- 4月还完债务,“真还传”大结局?罗永浩回应:纯属造谣...
- SQL Server上的审计表和数据版本控制
- 复变函数系列(三 ) - 复变函数的积分
- linux下mysql启动失败问题解决(CentOS7)
- BZOJ3517 翻硬币
- docker如何配置阿里云加速器
- vue CAD-dwg格式文件预览
- 2016版excel_想要下班直接打卡,这些Excel技巧可以帮到你
- 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类
- 文档服务器拓扑图,服务器网络结构拓扑图
- flex实现三栏布局
- Word控件Spire.Doc 【邮件合并】教程(三):如何创建邮件合并和合并文本值
- MATLAB:DTFT、DFT 相关题目学习