gpt4 book ai didi

Java - 设置字段是否分配另一个内存?

转载 作者:行者123 更新时间:2023-12-01 17:05:52 25 4
gpt4 key购买 nike

我有一个类似于下面的代码。

public class Controller {
public void test(){
Model1 model1 = new Model1();
Test test = new Test(model1);

}
}

public class Test {
private Model1 model1;

public Test(Model1 model1) {
this.model1 = model1;//this line
}

public Model1 getModel1() {
return model1;
}

public void setModel1(Model1 model1) {
this.model1 = model1;
}

}
public class Model1 {
private String field1;
private String field2;
public String getField1() {
return field1;
}
public void setField1(String field1) {
this.field1 = field1;
}
public String getField2() {
return field2;
}
public void setField2(String field2) {
this.field2 = field2;
}

}

我只是想知道,这段代码中实际创建了多少个 Model1?
另一个问题是这条线是否通过引用传递并且确实通过了
通过引用可以很好地内存吗?

最佳答案

不,分配给字段并不分配内存。

仅当您(直接或间接)调用构造函数时才会创建对象。

Another question is does this line is passed by reference and does passed by reference is good in memory?

从技术上讲,Java 中的所有内容都是按值传递的。

但是,对于对象,该值是对对象的引用(而不是其内容的副本)。

因此,就内存布局而言,传递一个对象与传递一个long 是一样的。

关于Java - 设置字段是否分配另一个内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25614858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com