Java deepToString中的此条件何时计算为true?

Java deepToString中的此条件何时计算为true?,java,Java,我正在查看该方法,无法理解以下情况 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

我正在查看该方法,无法理解以下情况

  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<>());
    return buf.toString();
 }
公共静态字符串deepToString(对象[]a){
如果(a==null)
返回“null”;
int bufLen=20*a.长度;

如果(a.length!=0&&bufLen只有当
a.length
非常大,以至于
20*a.length
无法放入
int
数据类型时,它才会返回true。但是,我不确定这是否会发生。

如果
a.length
大于
Integer.MAX\u值/20
bufLen
将溢出并变为负反复无常


因此,代码将其设置为可能的最大整数值。

例如,当
bufLen
溢出时