Object的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回true否则返回false。同一个对象的应用时。这句话是什么意思,最好可以举例说明,谢谢
解决方案 »
- [推荐]大家讨论下这个问题,现在公司用注解方式的多还是XML方式的多
- Java用xpath取xml里面值的问题
- JTree的节点显示一个JComboBox和一个JRadioButton,并可以选择,但选择后怎么监听选择的是哪一个控件??????????
- 怎么实现国际化
- 请教:Runtime打印出来的内存是什么内存?
- 在jcreator中为什么无法编译javax.servlet.*和javax.servlet.http.*;
- 我用timer写了一个定时执行的类!但是这个类提示有错误,大家帮我看看什么原因引起的?
- 在线求:网络上《Java游戏编程初步》的源代码,请给小弟一份~
- this用法?
- J2SE-1.4中取整函数是什么?在哪个类中?
- 抽象类与接口的区别与联系
- 寻求java视频教程
String a = new String("张飞");
String b = a;//让引用b指向引用a所指的对象
这就是两个引用指向同一个对象 这样的话 a.equals(b) 则返回TRUE
/*
a.equals(c);*/
仍然输出TRUE 因为String类重写了equals方法~~~~~
否则只有3楼情况才可能出现TRUE *里边的情况是不可能出现TRUE的
例如 String x="123"; integer y=123;因为是不同类型,所以直接返回false
2、如果二者是同一类型,会比较二者内存中的实际内容是否一致,至于他们的内存地址是否相同不做比较。比较内存地址用“==”
3、还要比较hashcode是否相同
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) true
这个结果是字符串池的原因,和数据库连接池类似。 不要使用==运算符来检测两个字符串是否相等!它只是测定两个串是否存储在同一个位置。当然,如果串是在同一个位置,那么它们必定相等。但是确实有可能吧串的多个拷贝存放在不同的地方。
"equals"可以理解为两个对象引用所指向的内容相同;
"=="是指对象引用相同 ;
例如:
String str1=new String("ABC");
String str2=str1;
String str3=new String("ABC");
String str4=new String("abc");str1==str2;为true,因为str1,str2都指向同一个"ABC";
str1.equals(str2);为true,因为str1,str2所指内容一样就是"ABC";str1==str3;为false,因为str3 又new了一块新内存空间来放"ABC",str1和str3不是指向同一个"ABC";
str1.equals(str3);为true,因为str1,str3所指内容一样就是"ABC";str1==str4;为false,因为str1和str4指向不同;
str1.equals(str4);为false,因为str1,str4所指内容不一样,一个是"ABC" 一个是"abc"
楼上的都讲得很明白了,我就说说我用.equals()的方法吧,如果知道是一个固定值,我就用("固定值").equals(string); 这样可以避免空指针异常!!