1、使用 StringBuilder 拼接字符串时,将单个拼接的标点符号用单引号,作为 char 类型的入参传入。
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append('[');
if (contentType != null) {
sb.append("Content-Type: ");
sb.append(contentType.getValue());
sb.append(',');
}
if (contentEncoding != null) {
sb.append("Content-Encoding: ");
sb.append(contentEncoding.getValue());
sb.append(',');
}
final long len = getContentLength();
if (len >= 0) {
sb.append("Content-Length: ");
sb.append(len);
sb.append(',');
}
sb.append("Chunked: ");
sb.append(chunked);
sb.append(']');
return sb.toString();
}
2、使用二分法时,可以用 size >> 1 取代size / 2.
因为位操作是程序设计中对位模式按位或二进制数的一元和二元操作。
在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。
在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).
Node<E> node(int index) {
if (index < (size >> 1)) {
Node<E> x = first;
for (int i = 0; i < index; i++)
x = x.next;
return x;
} else {
Node<E> x = last;
for (int i = size - 1; i > index; i--)
x = x.prev;
return x;
}
}