Arrays类中的deepToString方法

时间:2017-09-27 15:40:15

标签: java arrays multidimensional-array

我很好奇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();
}

1 个答案:

答案 0 :(得分:2)

这是一个表演赌注。它初始化StringBuilder的大小很有可能足以连接所有内容而不必调整缓冲区太多次(或根本没有),也不会太大以避免浪费太多内存。