对象为什么活在内存的解析

SpeedVan
11-11-03 0 204

JVM上对象是以引用来相互关联,而引用与地址相关,但与key无关。每次加载同一个key/value会得到不同的引用,所以对象不能随便死亡,一旦死亡就脱离关系。我们脑海中对象的逻辑关系是key中的关系,并非引用关系,所以key关系与引用关系相一致的时候,就是在内存中。

按道理,我们是应该在key关系中找到目标key(key就是实体),再通过这个key来获得引用,再获得相应对象,这样对象关系就不会受限于引用。但在


a{
b

getb(){
return b;
}
}


这样的代码中,b保存的是引用,并非key,所以在能够保持对象关系中,最后一层就是内存。

Key指引逻辑关系,引用指引内存关系。过去所谓的对象持久化,即是去除引用关系,保存逻辑关系。而对象还原时,需要重塑内存关系,而刚好重塑内存关系是最费劲,最没效率的,很明显要解决这样的问题,就是以内存为基本活动空间,把内存关系重塑尽可能回避掉,如只在启动加载时。

最后可以得出,判断对象活动的地方,可通过对象关系的实现手段(引用),来判断对象的存活地方(内存)。