當您將它們傳遞給Java中的方法時,我對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
在這裏,我路過商店參考ProducerStore。 Inside ProducerStore我將它分配給它的類成員。我也爲ConsumerStore做同樣的事情。
有人能解釋我如何爲存儲引用完成內存分配以及它如何在ProducerStore和ConsumerStore之間共享?
我們也是。爲什麼你在第一時間使用公共變量?然後你傳遞相同的引用,這意味着兩個對象將具有相同的引用,因此修改將適用於這兩個對象。 –
我也是。你在問什麼? –