1. jamvm采用纯ansi c编写,首先根据参数来确定分配一块heap区,然后所有的object在这里面分配。等于所有分配的内存都控制在这块heap区,就算有overflow之类都可以catch住。
2. 里面heap有一个链表类的结构来将object串起来,目前这块还在分析中。
typedef struct object Class;
typedef struct object { uintptr_t lock; Class *class;} Object;
typedef struct classblock {
。。。。
} ClassBlock;
以前没想通为什么这两个结构要分开写,而不是放在一起,刚弄明白了,
java中都是引用,真正的对像才是ClassBlock,这个可以被多个Class来指向。所以分开存放才伤得起。