我很好奇deepToString实际上在做什么,所以我去看看这个方法。我的具体问题是乘以20实际完成的数组对象长度是什么?
public static String deepToString(Object[] a) {
if (a == null)
return "null";
int bufLen = 20 * a.length;
if (a.length != 0 && bufLen <= 0)
bufLen = Integer.MAX_VALUE;
StringBuilder buf = new StringBuilder(bufLen);
deepToString(a, buf, new HashSet<Object[]>());
return buf.toString();
}
答案 0 :(得分:2)
这是一个表演赌注。它初始化StringBuilder的大小很有可能足以连接所有内容而不必调整缓冲区太多次(或根本没有),也不会太大以避免浪费太多内存。