jQuery火箭图标返回顶部代码

浅谈ArrayList集合(1)

  今天看了一下ArrayList集合的源码,当然了,还是只能看懂一些简单的,太深的看不下去。在我的认知中:ArrayList实现了List接口,ArrayList底层是数组,线程不安全,有序(有下标,存取顺序一致,比如存的第一个元素是a,那ArryList里面a就是在第一个),可重复,查询快,增删慢

今天新get到的就是为什么ArrayList线程是不安全的

它在添加元素的时候有两个步骤
1、先在object(size)上添加一个元素
2、size的长度加1。
如果两个线程同时往里面添加元素,线程1执行了步骤1,但是又没执行到步骤2,此时线程2进来也往同一个位置放元素,实际上两个元素都放在了一个位置,线程1的元素被覆盖掉了,但是size+1还是会执行,这样就只插入一个元素,但是执行了两次size+1

顺便附上一张关系图(图片出自:B站动力节点杜老师的教程视频)

posted @ 2020-08-29 11:29  天下没有收费的bug  阅读(53)  评论(0编辑  收藏  举报