为什么这两个的hashcode是一样的呢?第一个是指向常量池的“pb”地址,第二个是指向堆中value数组的地址,那hashcode应该不一样呀
java字符串创建关于hashcode的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 社区专家-Monster-XH 2023-04-23 17:53关注
基于Monster 组和GPT的调写:
- 在Java中,对象的hashCode()方法实现由该对象的类定义,它的实现可以根据对象的内容或其内存地址(默认实现)生成哈希码。
- 对于字符串,Java中的String类覆盖了Object类中的hashCode()方法,它根据字符串的内容生成哈希码。这意味着,如果两个字符串的内容相同,则它们的哈希码也将相同,而不管它们存储在哪里(常量池或堆)。
- 因此,无论是指向常量池的"pb"还是指向堆中value数组的地址,它们都是包含相同内容的字符串对象,因此它们的哈希码将是相同的。
- 在你的例子中,输出的哈希码将是相同的,因为n1和n2都包含相同的字符串"pb"。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 请提供一个符合要求的网页链接。
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码