StringBuffer类和String 类的 equals 和 ==
注意:
equals(Object obj)equals方法的参数是任意对象
Object类的equals方法就是用==判断的,即判断两个对象是否为同一个对象
StringBuffer类没有重写equals方法,String类重写了equals方法,用来判断两个字符串的内容是否相同
以下为Object类的equals方法
public boolean equals(Object obj) {
return (this == obj);
以下为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;
}
public class Twine {
public static void main(String[] args) {
String s = "";
StringBuffer sb1 = new StringBuffer("hi");
StringBuffer sb2 = new StringBuffer("hi");
StringBuffer sb3 = new StringBuffer(sb2);
StringBuffer sb4 = sb3;
if (sb1.equals(sb2)) { //false
s += "1";
}
if (sb2.equals(sb3)) { //false
s += "2";
}
if (sb3.equals(sb4)) { //true
s += "3";
}
if (sb1 == sb2) { //false
s += "ss";
}
//s2和s3指向同一个对象
String s2 = "hi";
String s3 = "hi";
String s4 = s3;
if (s2.equals(s3)) { //true
s += "4";
}
if (s3.equals(s4)) { //true
s += "5";
}
if (s2 == s3) { //true
s += "6";
}
if (s3 == s4) { //true
s += "7";
}
if (sb1.equals(s2)) { //false
s += "8";
}
System.out.println(s);
// mm和nn指向的是同一个对象
// bb和cc指向的不是同一个对象
String mm = "hi";
String nn = "hi";
System.out.println(mm == nn); //true
String bb = new String("hi");
String cc = new String("hi");
System.out.println(bb == cc); //false
}
}
StringBuffer类和String 类的 equals 和 ==的更多相关文章
- Java Object类 和 String类 常见问答 6k字+总结
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- Java的常用类——Object类、String类
Java的JDK中提供给我们很多封装好的类就是Java API,可以直接调用. Java 的API(API: Application(应用) Programming(程序) Interface(接口) ...
- C#中 StringBuilder类 与 String类的区别---(转)
在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代 ...
- Hadoop: Text类和String类的比较
一般认为Text类和String类是等价的,但二者之间其实存在着不小差别: 以<Hadoop权威指南>中的案例为例,给定字符串 String s = "\u0041\u00DF ...
- Java 基础 常用API (Object类,String类,StringBuffer类)
Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...
- 07 Object类,Scanner,Arrays类,String类,StringBuffer类,包装类
Object类的概述:* A:Object类概述 * 类层次结构的根类 * 所有类都直接或者间接的继承自该类* B:构造方法 * public Object() * 子类的构造 ...
- Java基础(四):Java Number & Math 类、Character 类、String 类、StringBuffer & StringBuilder 类
一.Java Number & Math 类: 1.Number类: 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等.然而,在实际开发 ...
- Java学习(API及Object类、String类、StringBuffer字符串缓冲区)
一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就 ...
- StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存 ...
随机推荐
- 内网php项目访问(切换在线解决)
之前内网访问出现过问题: 可参考手机访问本地php项目遇到的问题及解决(2015-06-20 09:41) 后来重装wamp之后,要访问还是出现问题 即http://192.168.191.1/mui ...
- POJ 2096 Collecting Bugs 期望dp
题目链接: http://poj.org/problem?id=2096 Collecting Bugs Time Limit: 10000MSMemory Limit: 64000K 问题描述 Iv ...
- mvc 路由配置-学习
MapRoute(RouteCollection, String, String) 映射指定的URL路由. 'Declaration <ExtensionAttribute> _ Publ ...
- eg_5
问题描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符. 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” ...
- 关于mybatis的思考(3)——ResultMaps的使用
ResultMap元素在mybatis中非常重要,目的是告诉mybatis将从结果集中取出的数据转换为开发者需要的对象. UserMapping.xml <!-- selectAll操作 ...
- 从微信SDK看ProtoBuffer文件的生成
前言 Protocol Buffers (下面简称PB)是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无 ...
- 通用的将Excel导入数据集的方法
http://blog.csdn.net/baronyang/article/details/7048563
- jndi连接数据库配置过程总结
一.我们先找到tomcat安装目录中conf目录下的context.xml更改里面的内容: <?xml version='1.0' encoding='utf-8'?> <Conte ...
- [华三] IPv6技术白皮书(V1.00)
IPv6技术白皮书(V1.00) http://www.h3c.com/cn/d_200802/605649_30003_0.htm H3C S7500E IPv6技术白皮书 关键词:IPv6,隧道 ...
- C#基础知识(base、this、new、override、abstract、virtual、static)
前言 本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base.this.new.override.abstract.virtual以及针对static字段和s ...