next未初始化,为何可以直接使用?多线程同时调用时出现的异常解析,求大神解答`

public class ArrayList {
private Object[] list;
private int next;

public ArrayList(int c) {
    list = new Object[c];
}

public ArrayList(){
    this(16);
}

public void add(Object o){
    if(next == list.length){
        list = Arrays.copyOf(list, list.length*2);
    }
    list[next++] = o;
}

public int size(){
    return next;
}

public Object get(int index){
    return list[index];
}

}

private int next;
和c++不同,在java里,next会被设置为0。