2016 - 2024

感恩一路有你

java创建对象 Java对象的引用中存放的到底是对象的首地址还是散列码?

浏览量:1864 时间:2021-03-29 16:29:58 作者:admin

Java对象的引用中存放的到底是对象的首地址还是散列码?

Java对象有一个名为hashcode的属性,它是object的属性,所有对象都从object类继承。也就是说,一个Java对象有这个值

这个值有什么用?此值主要用于标识对象的唯一性。例如,您有一个名为class a的类和两个实例化的对象a a=newa()a B=newa(),如果您想比较a和B是否是一个对象?如何比较?您需要调用equals方法。默认情况下,equals方法通过hashcode的值进行比较。那么equals方法何时返回true?默认情况下,只有当两个比较对象(这里是a和b)是一个对象时,一个对象才是一个地址空间引用的Java对象实际上是对JVM内存中对象的引用

并且这个哈希代码存储当前变量引用的对象的地址

!希望您能理解。记住从一个例子中推断,这样你就能得到更多。首先,Java对象是一个引用变量,它使用两个内存区域:堆内存、堆栈内存。Java对象存储在堆内存中,对它们的引用(理解为变量)存储在堆栈内存中。

例如,string STR=new string(“string”)使用两段内存,new string(“string”)存储在堆内存中,STR变量存储在堆栈内存中。

当我们将对象设置为null(即:STR=null)时,STR变量与堆内存中的数据断开连接。GC算法会在必要时回收STR和堆内存中的对象,但是我们不能干预GC的任何回收。

.GC将在正确的时间回收垃圾数据。

java创建对象 java如何创建对象 java类与对象

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。