Java中打印对象内存地址

Java中打印对象内存地址Object 的 hashCode 默认是返回内存地址的 但是 hashCode 可以重写 所以 hashCode 不能代表内存地址的不同 System identityHash Object 方法可以返回对象的内存地址 不管该对象的类是否重写了 hashCode 方法 下面来验证 publicclassT publicstatic Strin

Object的hashCode()默认是返回内存地址的,但是hashCode()可以重写,所以hashCode()不能代表内存地址的不同

System.identityHashCode(Object)方法可以返回对象的内存地址,不管该对象的类是否重写了hashCode()方法。

下面来验证:

public class TestMem { public static void main(String[] args) { String s1 = "hello"; String s2 = "world"; String s3 = "helloworld"; String s4 = s1+s2; System.out.println(s3==s4); System.out.println(s3.hashCode()); System.out.println(s4.hashCode()); System.out.println(System.identityHashCode(s3)); System.out.println(System.identityHashCode(s4)); } }

结果

false - -  

s3和s4的hashCode一样,但是内存地址不一样。

由此可知,要想获取对象的内存地址应使用System.identityHashCode()方法


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207859.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:56
下一篇 2026年3月19日 下午12:56


相关推荐

  • vim退出快捷键「建议收藏」

    vim退出快捷键「建议收藏」退出vim的快捷键,不需要进入命令编辑模式按住shiftzz  保存退出zq  不保存退出,q表示放弃之所以按住shift,其实是切换大小写 在命令编辑模式下::q不保存退出:q!不保存强制退出:wq保存退出,w表示写入,不论是否修改,都会更改时间戳:x  保存退出,如果内容未改,不会更改时间戳

    2022年8月24日
    7
  • 【2025年首选】AI大模型API中转站

    【2025年首选】AI大模型API中转站

    2026年3月15日
    2
  • 西门子PLC_300F系列PLC_初始化MMC卡实验教程 S_L01[通俗易懂]

    西门子PLC_300F系列PLC_初始化MMC卡实验教程 S_L01[通俗易懂]西门子300F安全PLC忘记安全密码没有读卡器如何清空MMC卡西门子300FPLC安全密码操作前注意事项本次实验使用的硬件设备将新硬件进行组态和IP分配使用此硬件配合MMC进行操作西门子300FPLC安全密码300系列PLC在下载程序前必须设定一个安全密码,此密码会写在MMC卡里面,而且无法通过PLC拨码初始化,如果忘记密码可以通过使用西门子官方读卡器进行格式化,但是绝对不能插在普通读卡器或者带有读卡器的电脑上,这样操作会导致内存卡误格式化,损坏MMC卡。本实验将讲解如何在没有西门子官方读卡器的情

    2022年5月9日
    250
  • 使用Sigar包获取操作系统信息[通俗易懂]

    使用Sigar包获取操作系统信息[通俗易懂]项目中的一个需求是获取操作系统的相关信息,可以收集的信息包括:1,CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)2,文件系统信息,包括Filesystem、Size、Used、Avail、Use%、Type3,事件信息,类似ServiceControlManager4,内存信息

    2025年7月6日
    6
  • oracle rac常用命令_oracle rac集群搭建

    oracle rac常用命令_oracle rac集群搭建SRVCTLAdd添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME和ORACLE_SID参数匹配。srvctladddatabase-ddatabase_name[-mdomain_name]-ooracle_home[-sspfile]srvctladdinstance-d database_name -iinsta…

    2025年10月26日
    7
  • 移动端也能玩转!OpenClaw iOS/Android 端部署教程,语音唤醒 + 全场景随身 AI 助手

    移动端也能玩转!OpenClaw iOS/Android 端部署教程,语音唤醒 + 全场景随身 AI 助手

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号