第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

ArrayList.add()時(shí)報(bào)越界異常

ArrayList.add()時(shí)報(bào)越界異常

尚方寶劍之說 2019-03-28 18:15:57
今天遇到幾個(gè)很詫異的越界異常:List cmds = TerminalMaps.terminal_commands.get(mac);if (cmds == null){cmds = new ArrayList();}StringBuffer command = new StringBuffer();command.append(Constant.CMD_START).append("register_response").append(Constant.CMD_ITEM_TOKENIAER).append("ok");cmds.add(command.toString()); //在這一行報(bào)了個(gè)java.lang.ArrayIndexOutOfBoundsException: -1還有一個(gè)remove時(shí)越界異常:while (cmdList.size() > 0){String cmd = cmdList.remove(0); //這兒也報(bào)越界異常}這兩個(gè)越界異常的詭異極了, 而且很難重現(xiàn).當(dāng)我以為只是幻覺的時(shí)候, 他又時(shí)不時(shí)蹦出來惡心我一把.請(qǐng)大家指教.
查看完整描述

4 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

還有一個(gè)remove時(shí)越界異常:
while (cmdList.size() > 0){
String cmd = cmdList.remove(0); //這兒也報(bào)越界異常

第一次進(jìn)入while存在0的元素是沒問題的,當(dāng)?shù)诙芜M(jìn)入0的元素已經(jīng)被移除。所以會(huì)有
越界異常

查看完整回答
反對(duì) 回復(fù) 2019-04-26
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

只有兩種可能會(huì)引起這種情況:
1。多線程的并發(fā)訪問導(dǎo)致的,需要有外部同步機(jī)制。
2。List cmds可能是List的特殊實(shí)現(xiàn),檢查它的類型。

查看完整回答
反對(duì) 回復(fù) 2019-04-26
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

第一個(gè)問題:
ArrayList.add不會(huì)報(bào)越界異常, 最多堆OutOfMemory,你這里
[code="java"]List cmds = TerminalMaps.terminal_commands.get(mac); [/code] ,起作用的應(yīng)該是這句吧,看看這個(gè)怎么實(shí)現(xiàn)的。

第二個(gè)問題:
并發(fā)情況下,有可能發(fā)生這個(gè)問題,2個(gè)線程都進(jìn)入了while循環(huán),結(jié)果第2個(gè)remove(0)的就會(huì)報(bào)越界異常。


查看完整回答
反對(duì) 回復(fù) 2019-04-26
  • 4 回答
  • 0 關(guān)注
  • 812 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)