一起来聊聊Java中的ArrayList

一起来聊聊Java中的ArrayList提起 ArrayList 相信对于 java 开发人员来说并不会感到陌生 甚至会有种亲切感 好像每次出去面试 多多少少都会跟它扯上点关系 所以导致网上以及各大培训机构都对其源码有着丰富的解读

大家好,欢迎来到IT知识分享网。

提起ArrayList相信对于java开发人员来说并不会感到陌生,甚至会有种亲切感。好像每次出去面试,多多少少都会跟它扯上点关系。所以导致网上以及各大培训机构都对其源码有着丰富的解读。

但是,本篇文章并不是去解读底层源码的:“底层是用什么实现的,默认初始化容量是多大,是不是线程安全的,是怎么进行扩容的 ” 这些老生常谈的问题。

前段时间,本人闲来无事,本来阅读优秀框架代码,提升自己能力的思想觉悟去翻了一下其底层代码,发现了一个好玩的事。这里先卖个关子。

我们先来看一下ArrayList 的继承图:

一起来聊聊Java中的ArrayList

ArrayList 中的继承关系

不知道各位朋友有没有发现其中的端倪呢?好吧,不卖关子了。ArrayList 的直接父类是AbstractList,AbstractList 的已经实现了List 这个接口,那么ArrayList 为什么还要实现List 接口呢 ?不知道各位小伙伴们有没有过这样的疑惑?

本着阅读优秀人的代码,就是去读那个人的思想,就是去走进那个人的内心世界原则。于是,什么面向接口编程,什么高内聚,低耦合,什么开放-封闭原则,什么单一职责。能往上靠的都靠上。嗯,优秀的人,写的代码就是优秀,写得真好,设计得真完美!

在无数次的良心不安与对知识的追求下,终于找到了真相:真相就是作者写错了。

一起来聊聊Java中的ArrayList

作者承认他写错了

上面的截图中的人说,他曾经就这个问题问过Josh Bloch,Josh Bloch 承认说那是个错误。作者在写的时候,想着实现List 接口可能会有一些用。后来jdk维护者们,认为不值得为这么个美丽的错误而去修改,就没有修改它了。

好了,今天的分享就告一段落了,感谢各位听我水了这么多没用的,哈哈~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/165958.html

(0)
上一篇 2025-01-03 21:26
下一篇 2025-01-03 21:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信