==用来测试基本类型是否相等
equals()是Object类的方法,一般重写以后可以比较对象是否相等。
equals()是Object类的方法,一般重写以后可以比较对象是否相等。
解决方案 »
- String类的一点感想
- 这个计算器小弟我死活调不出来啊~~~求助!
- 小程序, 问题好像就出在第二个源文件的赋值语句里,但不知道怎么改??
- 请教一个有关javax.swing.timer的问题
- Swing文字输入组件 与 智能ABC输入法 不兼容的问题
- 写一个方法,实现字符串的反转,如:输入abc,输出cba
- 超简单String[] 的输出,在线等!
- 关于jpanel的问题,在线等候,急~~~~
- 救救我呀!关于SOCKET!
- 求教高手java中一个高级的List问题!
- 我结婚了
- 命令行下编译,用JDBC连microsoft sql server 2000时,总是找不到com.microsoft这个包
a==b;
但是用equals不相等
String a="good",b="good";
a!=b;
但是用equals相等
equals比较对象存储内容例如:
String str1 = new String("abc");
String str2 = new String("abc");str1 == str2 false
比较引用地址。
str1.equals(str2) true.
比较字符串内容。String str1 = "abc";
String str2 = "abc";str1 == str2 true
str1.equals(str2) frue
这个结果是字符串池的原因,和数据库连接池类似。
equals(),比较String的面值
String a="good",b="good";
a!=b;
但是用equals相等
以上内容是不对的。测试一下便知。
String str1 = new String("AAA");
String str2 = str1;
那么str1.equals("AAA")和str1.equals(str2)肯定返回true而==运算符比较两个对象是否引用相同的实例:
Strint s1="china";
s1引用了一段静态内存,其中存储的信息是"china",而:
Strint s3=new String("china");
为s3在堆栈中声明了一个字符串对象;
二者显然引用的不是同一个对象,因此
s1==s3肯定返回false
在Object类中它是实现判断两个对象是否指向同一块内存区域。
{
String a = new String("good");
String b = new String("good");
public Test()
{
if(a==b)System.out.println("a==b");
if(a.equals(b))System.out.println("a.equals(b)");
}
public static void main(String[] args)
{
Test test = new Test();
}
}
可以打印出来a.equals(b)的