当您将它们传递给 Java 中的方法时,我对 Java 中引用的内存分配感到困惑。作为测试,我做了一个如下示例,
class Store{
public int[] buffer = new int[5];
}
class ConsumeStore{
Store store;
public ConsumeStore(Store store){
this.store = store;
}
public int useStore(){
return store.buffer[0];
}
}
class ProduceStore{
Store store;
public ProduceStore(Store store){
this.store = store;
}
public void putStore(){
store.buffer[0] = 100;
}
}
public class CheckRef {
public static void main(String args[]){
Store store = new Store();
ConsumeStore consStore = new ConsumeStore(store);
ProduceStore prodStore = new ProduceStore(store);
prodStore.putStore();
System.out.println(consStore.useStore());
}
}
那么输出是100。
在这里,我将 Store 引用传递给 ProducerStore。在 ProducerStore 中,我将它分配给它的类成员。我也在为 ConsumerStore 做同样的事情。
有人可以解释一下如何为 Store 引用完成内存分配以及它是如何在 ProducerStore 和 ConsumerStore 之间共享的吗?