android "=="、equals()、hashcode()
来源:互联网 发布:pscc2018破解软件 编辑:程序博客网 时间:2024/06/10 21:09
1.==(引用类型我的理解比较的是一个对象存储的地址)
如果比较对象是基本类型变量,只要变量值相同,返回true;
如果比较对象是引用类型变量,只有指向同一个对象才返回true,不可比较没有父子关系的俩个对象,用“==”比较俩个 String 对象永远为false,因为指向的是俩个地址
String a = new String(“abc”);
String b = new String(“abc”);
String c = “abc”;
String d = “abc”;
System.out.println(“1——>” + (a == b));
System.out.println(“2——>” + (a.equals(b)));
System.out.println(“3——>” + (c == d));
System.out.println(“4——>” + (c.equals(d)));
System.out.println(“a.hashCode()——>” + a.hashCode());
System.out.println(“b.hashCode()——>” + b.hashCode());
System.out.println(“c.hashCode()——>” + c.hashCode());
System.out.println(“d.hashCode()——>” + d.hashCode());
2.equals()(比较的是引用类型变量的内容—-value)
系统定义:
public boolean equals(Object obj) {
return (this == obj);
}
但是对于String类源码中重写的equals()
(1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。
(2)若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。
3.hashcode()(引用类型变量内容的存储地址—-key)
hashCode是根类Obeject中的方法。
默认情况下,Object中的hashCode() 返回对象的32位jvm内存地址。也就是说如果对象不重写该方法,则返回相应对象的32为JVM内存地址。
参考博文
http://www.cnblogs.com/xudong-bupt/p/3960177.html
- android "=="、equals()、hashcode()
- hashCode、equals、==
- equals == hashcode
- equals == hashcode
- equals,==,hashcode
- equals 和 ==, equals 和 hashcode
- equals ,== hashCode方法
- HashCode,equals 和 ==
- 关于“==”、equals()、hashCode()
- equal | == | equals | hashCode
- HashCode,equals 和 ==
- java ==,hashCode(),equals(),
- ==、equals和hashCode
- 关于equals,==,hashCode
- equals , hashcode() 和 ==
- 理解equals,==,hashcode,
- hashcode、equals和==
- ==,equals()和hashCode()
- MongoDB可视化工具 Studio 3T
- Android执行Native可执行文件
- 动态规划
- X问题 扩展欧几里得
- python---列表应用
- android "=="、equals()、hashcode()
- [main]- ERROR 1037 Operands of Regex can be CharArray only :(Name: Regex Type: null Uid: null)
- FaceNet: A Unified Embedding for Face Recognition and Clustering论文解读
- 本博客代码与mallocfree相关申明
- 关于单例模式的总结
- maxout论文阅读
- 170902 WarGames-Narnia(8)
- 计算广告机制设计:基本的拍卖算法
- 跟我学Laravel之请求与输入