【发布时间】:2011-07-04 10:13:55
【问题描述】:
我是 mongodb 的新手,并且正在阅读 Java 和 Mongodb 教程。我注意到 BasicDBObject 有 put() 和 append(),我查看了 API,put() 继承和 append() 是 BasicDBObject 的内置。有没有人有什么不同,例如访问速度?谢谢!
【问题讨论】:
我是 mongodb 的新手,并且正在阅读 Java 和 Mongodb 教程。我注意到 BasicDBObject 有 put() 和 append(),我查看了 API,put() 继承和 append() 是 BasicDBObject 的内置。有没有人有什么不同,例如访问速度?谢谢!
【问题讨论】:
public BasicDBObject append( String key , Object val ){
put( key , val );
return this;
}
put() 返回前一个值(如果适用)。 append() 在内部调用 put() 并返回 BasicDBObject 实例本身。从本质上讲,append() 是 fluent interface 的更多 put()。它允许您执行以下操作:
BasicDBObject o = new BasicDBObject().append("One", 1).append("Two", 2).append("Three", 3);
就性能而言,如果在某处足够频繁地使用它们,JVM 将假定内联方法,如 append()。然而,根据我的经验和相当多的分析,这并不总是正确的,通过直接使用put() 并节省 JVM 的猜测,您一定会获得一点速度。
也就是说,代码可读性应该始终是一个优先事项。只需在您觉得舒服的时候编写代码,然后进行基准测试/配置文件以找到任何可能的优化。过早的优化是一个应该不惜一切代价避免的诱惑......
【讨论】: