hashcode和==
public class Main {
public static void main(String[] args) {
Object o=new Object();
System.out.println(o+" "+o.hashCode());
}
}//会输出java.lang.Object@6bc7c054 1808253012,前一个字符串的@后面的十六进制数和第二个字符串的数值相同。
hashcode方法实现了将类的实例经过hash算法以后得到的整数值进行返回。而equals方法则是直接将类的实例进行比较。
hashcode方法对于普通类型对象和包装类型对象而言,是对内容的哈希。因此两个相同类的构造函数的对象的哈希码也不同。
但是==比较的只是地址,而非内容。
public class HelloWorld {
public static void main(String []args) {
Object o1=new Object();
Object o2=new Object();
System.out.println(o1.equals(o2));
}
}//输出false,因为o1和o2两个对象内容完全不相等,因此hashcode的结果也不相等。
public class Main {
public static void main(String[] args) {
String s="a"+"ss";
String s1="ass";
String s2=new String("ass");
System.out.println(s1.hashCode()+" "+s2.hashCode()+""+(s1==s));
}
}//s1不等于s2,但s等于s1,三者的哈希码都相等。
最新文章
- 关于css样式2
- sharepoint 网站创建
- atitit agt sys 设置下级代理功能设计.docx
- jenkins忘记管理密码处理方式
- 转<;<;C#集合Dictionary中按值的降序排列
- 编译android源码官方教程(5)编译完之后刷机、编译fastboot
- [Tex学习]给汉字注音
- android数独游戏
- VC编程技巧:IE控件的高级用法
- HDU 1495 非常可乐 BFS搜索
- [SSD大法好]神舟K480-I5-D3鸟枪换炮M6S
- codevs 1733 聪明的打字员 (Bfs)
- NSIS:静默释放文件并运行 制作绿色单文件软件
- poj 3975&;amp;&;amp;hdu 1850 (nim)
- LED调光,PFM即pulse frequence modulation
- ORACLE处理用户进程大剖析[阅读]
- phpcms v9 前台getshell脚本
- Android等宽字体
- 安卓笔记--- intent传递自定义类
- MVC 向页面传值方式总结(1)