在搜索HashMap实现后,在http://www.docjar.com/html/api/java/util/HashMap.java.html上找到此代码.
264 static int hash(int h) {
265 // This function ensures that hashCodes that differ only by
266 // constant multiples at each bit position have a bounded
267 // number of collisions (approximately 8 at default load factor).
268 h ^= (h >>> 20) ^ (h >>> 12);
269 return h ^ (h >>> 7) ^ (h >>> 4);
270 }
Run Code Online (Sandbox Code Playgroud)
有人可以对此有所了解吗?评论告诉我们为什么这个代码在这里,但我想了解这是如何改善错误的哈希值以及它如何保证位置具有有限的碰撞数量.这些神奇数字意味着什么?
我正准备向管理人员介绍单元测试.我的团队多年来一直在编写单元测试,但该公司的其他领域似乎很难采用它.我可以让开发人员对此感到兴奋,但如果没有管理层的支持,它就不会成为标准.
你们有什么建议如何最好地处理这方面的管理?你曾经尝试过哪些有用的东西?什么东西不起作用?
如果我们调用wait()
,notify()
或者notifyAll()
在没有synchronized
块的对象上调用,我们就会IllegalMonitorStateException
在运行时调用.
如果我尝试在没有同步块的情况下调用这些方法,为什么编译器不会标记我?
我有一个小困境.
如果您有以下URI端点:
/item
/item/{id}
Run Code Online (Sandbox Code Playgroud)
如果我发出GET请求,/item
我希望这样:
<Items>
<Item>...</Item>
<Item>...</Item>
...
</Items>
Run Code Online (Sandbox Code Playgroud)
如果我向/ item/{id}发出GET请求,我希望这样:
<Item>
...
</Item>
Run Code Online (Sandbox Code Playgroud)
我的一些团队成员争辩说我们应该设计API,这样当有人为/ item/{id}进行GET时,它应该作为单个元素的集合返回.像这样:
<Items>
<Item>...</Item>
</Items>
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎不对.你也觉得不对吗?请解释原因,因此我可能会说服自己使用资源的永久包装版本或我的同伴开发人员使用非包装的单一资源.