我來自C++背景。在C++中,我可以將一個內存地址存儲在全局數組中,並在以後重新使用它。例如,假設我有兩個類X,Y和我創建了兩個對象x,y。Java:如何在C++中存儲和檢索內存地址
uint32_t StoreAddresses[2];
我寫:
X * x = new X();
Y * y = new Y();
StoreAdresses[0] = (uint32t *) x; //for example, 0x12345678
StoreAdresses[1] = (uint32t *) y; //for example, 0x12345698
Anywhere的我的程序,我可以檢索寫在存儲器中的數據,通過調用:作爲全局陣列StoreAddresses [2]被定義
X * stored_x = (X*)StoreAdresses[0];
Y * stored_y = (Y*)StoreAdresses[1];
我怎樣才能在Java中實現? 感謝幫助!
Java和C/C++之間的原理差異之一是Java限制了程序員使用和濫用內存的能力。我想你可以用一個字節數組來模擬這個(或者像Peter Lawrey所說的那樣,使用'unsafe',但是對於他來說就是1+),但是更好的做法是讓你學習Java的方法並且使你的編碼適應它的優點,不是它的弱點。 – 2011-12-26 12:14:48
與@HovercraftFullOfEels一致 - 爲了實現你想要做的事情,你應該將'X'和'Y'的引用存儲在一個靜態字段中,而不是用內存地址。 – Chii 2011-12-26 12:19:59
真正的問題是:你爲什麼要這樣做 – 2011-12-26 12:21:37