00:00
好,那么这呢,我们把这个两个这个源码呢就都讲了讲,哎大家的话呢,基本上能听得懂,下来呢,有兴趣呢,大家自己呢也走一走,这个源码就是我们看源码这个事儿呢,在咱们这一章当中达到顶峰啊,说这这小意思啊,哎,这个顶峰还没来呢哈,这个哈希map呢,那是顶峰哈,就这一章呢,咱们看源码呢,看的会比较多一些啊,因为呢这呢涉及到底层的数据结构了啊,数据结构呢,就是属于一个基本的功啊,基本功啊体现了大家这个所谓的这个,呃,谁就会深一点啊,谁浅一点啊,那就往底层看,哎,所以这块呢,我们带着大家呢,看的稍微多一点,大家下来的话呢,你自己也可以看一看啊,也可以看一看,那这个完以后,我们把这个绿色里边这些结构呢,基本上就算说透彻了啊,当然还有这个叫vector,这个vector的话呢,我们就不看了,因为它基本上也不用了,呃,这个vector的话呢,按说也是数组,你看JDK7和八当中,我们在八里边呢,对俄呢。
01:00
进行过一些调整,这个vect呢,也是数组啊,都没有理他,哎,就是明显感觉是像一个后后生的一样是吧,哎,就就不管它了哈,就是vect在七跟八当中也没有区别啊,那么呃,如果非要说这个vector跟list,呃,List还有点什么别的不一样呢,就这个哥们这个扩容的方式呢,稍微有点不同了啊,就额外的这个咱们就说一句就行啊,Ctrl c crl shift t,咱们呢就快速的看一下,这呢是vector,然后呢,我们ctrl o这个先看下这个所谓的构造器吧,CC看下这个VE来看到啊,这呢是咱们这个G。我说这这个八当中,咱们没有把这个七拿过来,这个八里边呢,你看它还是十,这个release呢,七跟八呢,底层呢变了是吧,咱不是变成所谓的内容,像懒汉式一样,效率高了一点啊,那这个呢,Vector呢,说你怎么不改呢,人家也是数读,那就懒得改了,就从这也能看到这个就对它这个明显花的心思就少了,也没改啊,哎,就是还是这个长度是十,一开始呢就造好了,那么接下来的话呢,我们去调一下这个叫爱的操作,那么爱的操作呢,我们往里边去加数据,加数据主要呢关于扩容啊,那就是在这块考虑了啊,这个进来,这不还是割肉嘛,啊还是进来,这是你原本的这个数字的长度,新的这个数字长度,这个值的话呢,一开始它其实是个零,哎,这个再再来一下啊,这个I。
02:31
进来,嗯,这个呢,没涉及到这变量,我们再诶看错了啊,看这个再进来,进来以后这个时候还没有这个值,呃,在这时候呢,出现了个它这个值的话呢,你点一下,哎,它一开始呢,它其实就是零,所以这个呢,你就哎不用管它了啊,它是个零,零的话呢,我们就会执行这个数,哎把这个呢返回,这个返回加上这个相当于我们新的这个容量呢,默认是扩容为原来的二倍。对,就是这个扩容的这个长度比我们a release呢稍微大一些啊,当然release呢是只有1.5倍啊啊其他的这块呢,就没什么区别了,主要呢就是它是一个同步的了。
03:08
呃,就是效率呢,稍微低一点,但是线场安全啊,那当然这块呢,大家还会有个担心说呢,呃,人家这个we呢是限制安全的,那万一要是后边呢,我们处理多线程问题啊,而恰好你这个共享数据呢,就是咱们的release,那不就得用vector吗?哎,我们说呀,到那个时候呢,我们也不愿意用we,哎不愿意用we,那你用类不安全怎么办呢?咱们后边呢,还要讲工具类,工具类呢叫collections,哎你看这有个工具类这一章,咱们最后去讲它这个S里边呢,它有这个方法找这个叫synchronized的。你看啊,这是吧,Civilized list,咱们呢,把这个a list扔进去。
04:02
返回了一个就是线程安全的啊,那就是说呢,呃,Release你不是不安全吗?现在又要求你安全,那我扔进去返回安全的,那VE在这瞪着要看他说你就真的不用我是吧?啊,那确实就不用怕啊啊行啊,这这哥们呢,可能没没准在某一天就被牌KTY了是吧。啊,就是一朝皇帝一朝臣是吧,你换了啊,行,简单的咱们说一下这个vector它的一个,呃,底层的一个源码啊,这个呢,你关注的一个事儿,就是七跟八当中它没有,呃,它都是这个一开始都造好这个长度了,哎简单写一下吧,在这写一个这个四啊。哎,就是我们简单看了一下这个vector它的一个源码分析啊,就是在JDK7哎和JDK8中啊,那么这个通过通过咱们这个叫VE这个构造器,呃,创建对象时。
05:02
诶这个底层呢,哎都哎创建了呃长度为诶十的这个数组啊这是这个事儿,另外的话呢,就是在扩容方面,哎,我们说这个哎默认扩容为哎原来的这个数组长度的二倍,这个呢,区别于咱们的her list。行,那这呢,我们就算说的已经很透彻了啊。
我来说两句