发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

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

2011-11-03 17:22
赞助商链接

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

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


a{
b

getb(){
return b;
}
}


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

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

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

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com