我来自C++背景。在C++中,我可以将刚刚使用new关键字分配的内存地址存储在全局数组中,并稍后重新使用它。例如,假设我有两个类X、Y,并创建了两个对象x、y。全局数组StoreAddresses[2]定义如下:
uint32_t StoreAddresses[2];
I write:
X * x = new X();
Y * y = new Y();
StoreAdresses[0] = (uint32t *) x; //for example, 0x12345678
StoreAdresses[1] = (uint32t *) y; //for example, 0x12345698
在我的程序中的任何地方,我都可以通过调用以下代码来检索内存中写入的数据:
X * stored_x = (X*)StoreAdresses[0];
Y * stored_y = (Y*)StoreAdresses[1];
我应该如何在Java中实现这个? 感谢您的帮助!
unsafe
——给他一个赞),但更好的方法是学习Java的方式,并根据其优点而不是缺点来调整你的编码。 - Hovercraft Full Of EelsX
和Y
的引用存储在静态字段中,而不是在内存地址上胡闹。 - ChiiX x = new X(); x.doThis()
等同于C++中的X* x = new X(); x->doThis()
。始终考虑对象指针和箭头访问。 - helios