Java String中的==和hashCode()方法
程序员文章站
2022-03-15 20:33:59
...
String 类已经重写了Object的hashCode方法了。 但是在HashCode默认情况下表示的是内存地址。注意: 如果两个字符串的内容一致,那么返回的hashCode 码肯定也会一致的。
public class Demo4 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = new String("hello");
System.out.println("两个是同一个对象吗?"+(str1==str2));
System.out.println("str1的hashCode:"+ str1.hashCode());
System.out.println("str2的hashCode:"+ str2.hashCode());
/*
* HashCode默认情况下表示的是内存地址,
* String 类已经重写了Object的hashCode方法了。
注意: 如果两个字符串的内容一致,那么返回的hashCode 码肯定也会一致的。
*/
}
}
public int hashCode() { //String重写hashCode()源码
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
上一篇: C语言合并两个带头节点升序排列链表
下一篇: C语言实现匿名聊天(多客户端一服务器)
推荐阅读
-
Java面向对象(1)面向对象的思想概述以及类的介绍,封装和构造方法
-
php中运用http调用的GET和POST方法示例_PHP
-
Java中的增强for循环和break continue的使用 以及流程控制训练
-
java中的sleep()和wait()的区别
-
java中的关键字和标识符
-
android中判断sim卡状态和读取联系人资料的方法
-
对java中的上转型和下转型的理解
-
JavaEE基础day02 1.定义Java中的变量 四类八种 2.变量定义和使用的注意事项 3.数据类型的转换、强制数据类型转换4.算数运算符、比较运算符、逻辑运算符、赋值运算符、三元运算符
-
thinkphp中session和cookie无效的解决方法,thinkphpsession
-
Android TextView 在java代码中改变字体的颜色的方法