java - 类 obj = obj1; 是什么意思?

标签 java object

我有一个类似的类(class)

public class fun{

     abc(){//.some code.//}

}

在某些main方法中,有类似的代码

fun obj = new fun();
fun obj1 = obj;

请帮我解释一下main中的对象如何访问类。

最佳答案

在 Java 中,有两种不同的东西:

1) 引用变量

2) 对象

引用变量:它存储在堆栈中,它们可以包含在其他对象中(那么它们不是真正的变量,而是字段),这也将它们放在堆上。它是一个指向内存中某个对象的变量。

对象:对象存储在堆内存中。它是动态创建的类的实例。

在您的代码中,objobj1 是引用变量。当您执行 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/

相关文章:

java - 严重 : JGRP000019: failed passing message to receiver: %s

java - 从 spring 属性加载 SQL 不运行

java - 显示由相机API android拍摄的图像

java - 如何从子调用父私有(private)方法?

object - Powershell:将所有项目/属性加载到新对象中

objective-c - 如何将 NSNumber 传递给需要 bool 值的方法?

java - 如何只获取一次数组元素

audio - 同一Flash文件(.swf)在页面上多次下载

javascript - javascript 如何为函数和数组等对象创建替代语法?

java - 当一个对象只被定义时会发生什么?