Java 在其他实例的字段中实例化对象
在下面的程序中,我在Book class成员字段中实例化了一个Store对象。这个命令是在堆中的每个Book类对象空间内分配内存,还是在堆的空闲区域分配一次内存并为其分配地址Java 在其他实例的字段中实例化对象,java,Java,在下面的程序中,我在Book class成员字段中实例化了一个Store对象。这个命令是在堆中的每个Book类对象空间内分配内存,还是在堆的空闲区域分配一次内存并为其分配地址 public class Book{ private String bookName; private Store count = new Store(10); public Book(String bookName ) { this.bookName = bookName; } public voi
public class Book{
private String bookName;
private Store count = new Store(10);
public Book(String bookName ) {
this.bookName = bookName;
}
public void display(){
System.out.println(this.bookName);
}
public static void main(String[] args) {
Book main = new Book("Machines");
main.display();
System.out.println(main.count.bookCount);
}
}由于Book类的每个实例都包含自己的Store类,因此这会为每个实例分配内存,而不是作为一个堆。如果希望对每个Book实例使用相同的Store实例,则必须像下面这样将Store实例传递到构造函数中的Book类中
public class Book{
private String bookName;
private Store count;
public Book(String bookName, Store count) {
this.bookName = bookName;
this.count = count;
}
由于Book类的每个实例都包含自己的Store类,因此这将为每个实例分配内存,而不是作为一个堆。如果希望对每个Book实例使用相同的Store实例,则必须像下面这样将Store实例传递到构造函数中的Book类中
public class Book{
private String bookName;
private Store count;
public Book(String bookName, Store count) {
this.bookName = bookName;
this.count = count;
}
Store
是一种引用类型。实例化引用类型时,将分配一部分未使用的堆来存储实际实例。然后,将有一个“参考”存储在您当前所在的任何位置。此引用“指向”实际对象的存储位置
所以,
实际的
存储
对象存储在其他地方,而不是书籍
实例中。在book实例中,一个值被更改为存储存储
对象的内存地址。存储
是一种引用类型。实例化引用类型时,将分配一部分未使用的堆来存储实际实例。然后,将有一个“参考”存储在您当前所在的任何位置。此引用“指向”实际对象的存储位置
所以,
实际的
存储
对象存储在其他地方,而不是书籍
实例中。在book实例中,将一个值更改为存储存储
对象的内存地址。对象没有可分配的内存。更正了每本书的新存储
对象的语句。可以,但是,是在实例空间中还是在堆外部分配空间。对象,包括实例字段:堆。对象没有要分配的内存。更正了每本书的“新建<代码>存储代码>对象”一句。确定,但是,是在实例空间中还是在堆外部分配了空间。对象,包括实例字段:堆。