问题描述
所以说我有一些这样的测试java代码:
So say I have some test java code like this:
class A(){
int a = 0;
public A{
a = 1;
}
class B(){
A object = new A(); //Object one
A object = new A(); //Object two
我的问题是:在 A 类中,当我在对象上调用 new 运算符两次时会发生什么?它是否创建了一个新对象 A 并销毁了旧对象?还是会出错?它只是重置旧对象吗?
My question is: In class A when I call the new operator on object twice what happens? Does it create a new object A and destroy the old one? Or will it error? Does it just reset the old object?
我已经尝试了几次,但并不真正理解输出.
I have tried this a couple times and don't really understand the output.
推荐答案
它是第二个 A
对象.
第一个将在稍后被垃圾回收.
The first will be garbage collected sooner later.
注意,你也可以这样做
new A();
new A();
不将它们存储在变量中.它完全有效,将被执行.
without storing them in a variable. It's perfectly valid, and will be executed.
还要注意
A obj1 = new A();
A obj2 = obj1;
不复制对象,但它是对同一对象的引用.显然,您也可以有 0 个引用.
does not copy the object, but it's a reference to the same object. You can also have 0 references, obviously.
这篇关于如果我在 java 中对同一个对象调用 new 两次会发生什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!