前情回顾
自从我上次发了《这道Java基础题真的有坑!我求求你,认真思考后再回答。》这篇文章后。我通过这样的一个行文结构:
解析了小马哥出的这道题,让大家明白了这题的坑在哪里,这题背后隐藏的知识点是什么。
但是我是万万没想到啊,这篇文章居然还有续集。因为有很多读者给我留言,问我为什么?怎么回事?啥情况?
问题片段一:到底循环几次?
有很多读者针对文章的下面的这个片段:
问题片段二:为什么删除第一个不出错?
还有这个片段,对于为什么删除第一个元素不会抛出异常,也是一众选手,不明就里:
提炼问题
上面看着有点乱是不是呢?
那肯定是你没看过我这篇文章《这道Java基础题真的有坑!我求求你,认真思考后再回答。》。没关系,我先把问题提炼出来,然后有兴趣你可以再去看看这篇文章。
在描述问题之前,需要说明一下,为了方便演示说明,我会去掉Java的foreach语法糖,直接替换为编译后的代码,如下:
请坐稳扶好,下面的几个问题有点绕。主要是看图,先知道这几个现象。之后我还会把问题再简化一下。
问题一:如图所示,为什么删除第一个元素(公众号)可以正常执行,删除第二个元素(why技术)就会抛出异常呢?