我有一个类似的类(class)
public class fun{
abc(){//.some code.//}
}
在某些main
方法中,有类似的代码
fun obj = new fun();
fun obj1 = obj;
请帮我解释一下main
中的对象如何访问类。
最佳答案
在 Java 中,有两种不同的东西:
1) 引用变量
2) 对象
引用变量:它存储在堆栈中,它们可以包含在其他对象中(那么它们不是真正的变量,而是字段),这也将它们放在堆上。它是一个指向内存中某个对象的变量。
对象:对象存储在堆内存中。它是动态创建的类的实例。
在您的代码中,obj
和 obj1
是引用变量。当您执行 fun obj=new fun() 时,您正在创建 fun 类的对象,并且 obj 指向内存中的该对象。在下一行中,当您调用 fun obj1=obj 时,现在 obj1 也指向 obj 所指向的同一对象。
因此从技术上讲,两者都指向堆上的相同内存。 obj == obj1
将被评估为 true
。
注意:引用和对象定义 reference 。
(感谢 pshemo 提供此信息)引用和引用变量不是同一件事。引用(至少在Java中)是分配给每个对象的唯一编号,JVM可以使用它来查找它。引用变量是可以存储引用(作为它们的值)的类型的变量。
关于java - 类 obj = obj1; 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399072/