Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对象初始化-Java_Java_Class_Oop_Object_Instance - Fatal编程技术网

对象初始化-Java

对象初始化-Java,java,class,oop,object,instance,Java,Class,Oop,Object,Instance,我是Java新手 我想询问有关对象初始化的问题。首先,我要上课 public class A { .... } 然后在主类中,实例化A类 A a = new A(); 现在的问题是,这两个代码是否相同 A aa = a; 及 aa指的是同一个对象a A aa = new A(); about语句创建了与A不同的类型A的新对象。不,它们完全不同 A aa = a; 然后aa和a引用内存中的同一对象 A aa = new A(); 那么aa是一个新对象。现在堆栈上有两个对象。

我是Java新手

我想询问有关对象初始化的问题。首先,我要上课

public class A {

    ....

}
然后在主类中,实例化A类

A a = new A();
现在的问题是,这两个代码是否相同

A aa = a;

aa指的是同一个对象a

A aa = new A();

about语句创建了与A不同的类型A的新对象。

不,它们完全不同

A aa = a;
然后
aa
a
引用内存中的同一对象

A aa = new A();
那么aa是一个新对象。现在堆栈上有两个对象。

不,它们是不同的。 而
aaa=newa()创建类型为a的新对象,
aa=A
只是将
a
的引用传递给
aa
,这意味着这两个指向同一对象。 您可以通过打印
a
aa
的哈希代码来验证这一点

在第一种情况下,
A aa=Aaa
a
调用
hashCode()
将产生相同的结果,因为两者都指向同一个对象

在第二种情况下,
aaaa=newa()调用
hashCode()
将产生不同的结果,因为您正在创建一个全新的
a
实例

A aa = a 
但是,将引用对象a

A aa = new A();

将使类型a的新对象不相同。在第一种情况下,两个引用指向同一对象,在第二种情况下,两个单独的a对象。
A aa = a 
A aa = new A();