ArrayList.clear 抛出 ArrayIndexOutOfBoundsException

Bal*_*ngh 2 java concurrency arraylist

低于异常的ArrayList.clear() 任何原因都会明确抛出此类异常。我知道 add 或 get 可能会因负索引或大于列表大小而抛出此错误。

Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=49; index=49
       at java.util.ArrayList.clear(ArrayList.java:569)
Run Code Online (Sandbox Code Playgroud)

Dav*_*oko 5

的实现在设计ArrayList上并不是线程安全的。特别是关于,代码假设列表的大小在执行时不会改变。clear()clear

最有可能的是,您有另一个线程同时减少列表大小,clear这会导致逻辑尝试访问越界索引。


归档时间:

查看次数:

1096 次

最近记录:

4 年 前