在什么情况下Groovy使用AbstractConcurrentMap?

时间:2009-11-19 23:48:30

标签: java performance groovy map

(具体来说,org.codehaus.groovy.util.AbstractConcurrentMap)

在对混合Java / Groovy的应用程序进行一些分析时,我看到很多对AbstractConcurrentMap类的引用,其中没有一个在代码库中是显式的。当groovy动态def myMap = [:]样式中实例化地图时,groovy是否使用此类?当groovy选择使用它而不是java.util.HashMap时,有什么规则吗?

有没有人比较这两者有任何表现信息?我粗略的“眼球检查”说AbstractConcurrentMap似乎要慢得多 - 有人知道我是不是正确?

2 个答案:

答案 0 :(得分:0)

休闲咆哮:Groovy的API javadoc看起来很糟糕(没有描述这个抽象类的内容和/或内容)。

但是从我所看到的,至少有两个类扩展了这个抽象类。

org.codehaus.groovy.reflection.MixinInMetaClass

org.codehaus.groovy.reflection.ClassInfo$ClassInfoSet

两者(正如您可以从包名称中猜到的)必须使用Groovy中的反射代码执行某些操作。所以我想Groovy为一些内部的东西实例化这个抽象类的实现(例如你对java / groovy map的使用)

顺便说一下。 ClassInfo类(包含ClassInfoSet)上的javadoc简洁地陈述

  

处理我们想要的所有信息   关注班级

我认为这只对作者“Alex.Tkachman - ”

有意义

答案 1 :(得分:0)

在Groovy 1.6.3版中,以下内容:

println [:].getClass()

打印

  

class java.util.LinkedHashMap

表示LinkedHashMap是用于文字地图的Map实现。