IntelliJ变量视图中@后数字的含义是什么?
IntelliJ中@后数字的含义
你猜测的“内存位置/地址”并不准确,这个数字是对象的身份哈希码,具体说明:
- 它是通过
System.identityHashCode(Object)方法生成的,作用是在JVM中区分不同的对象 - 默认的
Object.toString()方法输出格式为类名@十六进制身份哈希码,而IntelliJ在这里显示的是十进制形式的该哈希码 - 它不等于内存地址:部分早期JVM实现可能用内存地址生成该哈希码,但现代JVM会采用随机数、线程局部哈希等算法,所以不能将其直接等同于对象的内存位置
内容的提问来源于stack exchange,提问作者committedandroider
相关产品推荐
相关产品推荐

