java.util.concurrent.ConcurrentHashMap的构造方法之一:
public ConcurrentHashMap(int initialCapacity) {
if (initialCapacity < 0)
throw new IllegalArgumentException();
int cap = ((initialCapacity >= (MAXIMUM_CAPACITY >>> 1)) ?
MAXIMUM_CAPACITY :
tableSizeFor(initialCapacity + (initialCapacity >>> 1) + 1));
this.sizeCtl = cap;
}
Run Code Online (Sandbox Code Playgroud)
方法'tableSizeFor(...)'的参数是什么意思?
initialCapacity + (initialCapacity >>> 1) + 1
Run Code Online (Sandbox Code Playgroud)
我认为参数应该是这样的:
(int)(1.0 + (long)initialCapacity / LOAD_FACTOR)
Run Code Online (Sandbox Code Playgroud)
要不就:
initialCapacity
Run Code Online (Sandbox Code Playgroud)
我认为参数表达式是错误的,至少是一个bug.Did我误解了什么?
我向OpenJDK发送了一个错误报告,似乎他们正式确认它很可能是一个bug:https://bugs.openjdk.java.net/browse/JDK-8202422
更新:Doug Lea评论了这个bug,似乎他同意这是一个bug.
在http1.1中,当我发出http GET请求:“ https://www.google.com/?name=jack ”时,我可以在chrome调试控制台中看到“查询字符串参数”:

我的问题是:“查询字符串参数”是标头或正文的一部分还是两者都不是?我在HTTP1.1 规范中找不到有关“查询字符串参数”的定义。