Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
240 commits
Select commit Hold shift + click to select a range
08f0f8b
Update 个人阅读书籍清单.md
liurongdev Nov 21, 2018
14418d9
Update 个人阅读书籍清单.md
liurongdev Nov 21, 2018
787272c
Update 个人阅读书籍清单.md
liurongdev Nov 21, 2018
e6413bd
Update 个人阅读书籍清单.md
liurongdev Nov 21, 2018
0232f51
:+1: Update :排版
Snailclimb Nov 26, 2018
ba1a95f
Add:图标
Snailclimb Nov 26, 2018
29e24d3
Update:提升阅读体验
Snailclimb Nov 26, 2018
67b84ae
Update README.md
Snailclimb Nov 26, 2018
16d26d2
Add:Shell编程入门
Snailclimb Nov 26, 2018
6c2c7d7
Add:Shell 编程入门
Snailclimb Nov 26, 2018
5b0db0a
Fix:错别字
Snailclimb Nov 27, 2018
63ce3d9
Refresh的单位其实是秒
justlive1 Nov 27, 2018
6612622
Update 这几道Java集合框架面试题几乎必问.md
lixd Nov 28, 2018
d62b6cb
Add:安利一波支付宝红包福利
Snailclimb Dec 1, 2018
14aca18
Update:我的公众号
Snailclimb Dec 1, 2018
d13b3a3
Merge pull request #67 from lillusory/patch-1
Snailclimb Dec 1, 2018
521200a
推荐自己的 SpringBoot 学习仓库
Snailclimb Dec 3, 2018
f1c99cd
Update README.md
Snailclimb Dec 3, 2018
4525cb7
Update:阿里云福利活动
Snailclimb Dec 3, 2018
5328960
程序员的数学课
Snailclimb Dec 4, 2018
ca77c9a
程序员的数学课
Snailclimb Dec 4, 2018
8435089
Update Java基础知识.md
Snailclimb Dec 6, 2018
9498c43
Update ZooKeeper.md
Snailclimb Dec 6, 2018
a6ff9bb
Update README.md
Snailclimb Dec 7, 2018
e81071b
Update README.md
MaxWhut2017 Dec 7, 2018
4d9feb4
Update README.md
Snailclimb Dec 7, 2018
365a0be
Update README.md
Snailclimb Dec 7, 2018
e80482d
Dubbo 总结第一弹
Snailclimb Dec 7, 2018
73d148f
Add:Dubbo 总结
Snailclimb Dec 7, 2018
defd3ca
dubbo 总结
Snailclimb Dec 7, 2018
14f990d
Update dubbo.md
Snailclimb Dec 7, 2018
7682070
阿里云双11活动
Snailclimb Dec 7, 2018
9ad82e3
Update README.md
Snailclimb Dec 7, 2018
31d14c2
Update README.md
Snailclimb Dec 7, 2018
ea7e23a
Update README.md
Snailclimb Dec 7, 2018
cc30ca0
Update README.md
Snailclimb Dec 7, 2018
93352f7
新增Dubbo
Snailclimb Dec 7, 2018
7636294
Update README.md
Snailclimb Dec 7, 2018
61d8c61
Merge branch 'master' into patch-1
Snailclimb Dec 7, 2018
5c2479a
Merge pull request #74 from MaxWhut2017/patch-1
Snailclimb Dec 7, 2018
5f4ba0e
Update README.md
Snailclimb Dec 7, 2018
768f45a
Add:Dubbo 总结第一弹
Snailclimb Dec 7, 2018
a9925f0
Add: 目录
Snailclimb Dec 9, 2018
62e01ca
Update README.md
Snailclimb Dec 9, 2018
e48797c
Update README.md
Snailclimb Dec 9, 2018
6ff250b
Create 并发容器总结.md
Snailclimb Dec 10, 2018
cd63426
Update README.md
Snailclimb Dec 11, 2018
fda1fca
Update README.md
Snailclimb Dec 11, 2018
0136fb2
Update README.md
Snailclimb Dec 11, 2018
d4cd2e3
[mod]优化CountDownLantch相关
Gene1994 Dec 11, 2018
29af532
typo
Gene1994 Dec 12, 2018
720e897
typo
Gene1994 Dec 12, 2018
4027556
Add:公众号福利活动
Snailclimb Dec 12, 2018
8595908
Add:公众号福利活动
Snailclimb Dec 12, 2018
34b2316
Merge pull request #77 from Gene1994/master
Snailclimb Dec 12, 2018
61898d9
Merge pull request #81 from Gene1994/patch-2
Snailclimb Dec 12, 2018
ad0a5f9
Merge pull request #66 from justlive1/master
Snailclimb Dec 12, 2018
6f63d79
Update README.md
Snailclimb Dec 12, 2018
d89fc9f
Update README.md
Snailclimb Dec 12, 2018
5d8a473
Add:目录
Snailclimb Dec 12, 2018
ed85046
Update AQS.md
Snailclimb Dec 12, 2018
83e59e3
Update README.md
Snailclimb Dec 13, 2018
34e9952
Update README.md
Snailclimb Dec 13, 2018
9e6d058
修改错误,将第68行的prototype改为request
SivanZeroX Dec 13, 2018
4e825b4
Update 多线程系列.md
Snailclimb Dec 14, 2018
0ae6326
Update README.md
Snailclimb Dec 14, 2018
df7f3dd
Update README.md
Snailclimb Dec 14, 2018
d44aa33
Update README.md
Snailclimb Dec 14, 2018
7800015
ADD:冬日温暖
Snailclimb Dec 14, 2018
38dca84
Update README.md
Snailclimb Dec 14, 2018
1378a4d
Create message queue.md
Snailclimb Dec 15, 2018
9746de7
Update:文件名
Snailclimb Dec 15, 2018
302e1f4
新手也能看懂,消息队列其实很简单
Snailclimb Dec 15, 2018
5099d0e
Update README.md
Snailclimb Dec 15, 2018
e86db99
Update message-queue.md
Snailclimb Dec 15, 2018
65b82e5
Update message-queue.md
Snailclimb Dec 15, 2018
74d1398
Update message-queue.md
Snailclimb Dec 15, 2018
a4f76a3
Update message-queue.md
Snailclimb Dec 15, 2018
0931bf9
Update README.md
Snailclimb Dec 15, 2018
8795d1b
Merge pull request #83 from neverX2017/master
Snailclimb Dec 15, 2018
4d5207b
Update README.md
Snailclimb Dec 17, 2018
e9d73b1
Create rabbitmq.md
Snailclimb Dec 17, 2018
16bd286
Merge branch 'master' of https://github.com/Snailclimb/Java_Guide
Snailclimb Dec 17, 2018
d8706e0
Update README.md
Snailclimb Dec 17, 2018
b1cbb33
Update rabbitmq.md
Snailclimb Dec 17, 2018
0bc951d
Update rabbitmq.md
Snailclimb Dec 17, 2018
ea4ba05
Update J2EE基础知识.md
Snailclimb Dec 17, 2018
1fd0d53
修改错别字
fanofxiaofeng Dec 18, 2018
5e9842c
Update Java基础知识.md
Snailclimb Dec 19, 2018
50c0bbf
[mod]B*树转义*,提高文档正确性
Gene1994 Dec 19, 2018
94c1eb8
[mod]1.新增数据结构:图 2.新增树及图中常用算法BFS、DFS
Gene1994 Dec 19, 2018
cd60cfb
Update ZooKeeper.md
SivanZeroX Dec 20, 2018
d9c8135
Update 这几道Java集合框架面试题几乎必问.md
DennisThink Dec 21, 2018
c0c669a
单词拼写错误
LiWenGu Dec 21, 2018
eb31bdf
Merge pull request #96 from LiWenGu/patch-1
Snailclimb Dec 23, 2018
7384462
Create JavaInterviewGithub.md
Snailclimb Dec 24, 2018
5f69db0
Update README.md
Snailclimb Dec 24, 2018
64eadf7
Merge pull request #95 from DennisCoder1024/master
Snailclimb Dec 24, 2018
7debc80
Merge pull request #94 from neverX2017/patch-1
Snailclimb Dec 24, 2018
a70acd2
Merge pull request #93 from Gene1994/patch-5
Snailclimb Dec 24, 2018
51c571f
Merge pull request #90 from Gene1994/patch-4
Snailclimb Dec 24, 2018
864db32
Merge pull request #89 from fanofxiaofeng/patch-1
Snailclimb Dec 24, 2018
2900f3f
Update README.md
Snailclimb Dec 24, 2018
ed7cb72
Create java programmer need know.md
Snailclimb Dec 27, 2018
729870b
Update README.md
Snailclimb Dec 27, 2018
b56adac
Update README.md
Snailclimb Dec 27, 2018
17d80a4
Update java programmer need know.md
Snailclimb Dec 27, 2018
086968e
Update README.md
Snailclimb Dec 27, 2018
2394613
Update java programmer need know.md
Snailclimb Dec 27, 2018
5da3bf1
Update MySQL.md
Silverados Dec 27, 2018
6bbaa5c
Update Java基础知识.md
Tecyang Dec 27, 2018
e43ecc1
Merge pull request #100 from Tecyang/master
Snailclimb Dec 28, 2018
82a9df9
Merge pull request #99 from Silverados/patch-3
Snailclimb Dec 28, 2018
95978bd
Update MySQL.md
Snailclimb Dec 28, 2018
abacd12
Merge pull request #63 from liurongdev/master
Snailclimb Dec 28, 2018
f0e3c7e
Update README.md
Snailclimb Dec 28, 2018
c7732e3
Add:目录
Snailclimb Dec 28, 2018
aff1f0a
Update 这几道Java集合框架面试题几乎必问.md
Snailclimb Dec 28, 2018
98ae0e7
Update ArrayList.md
Snailclimb Dec 28, 2018
fa87cde
修改错别字
phasd Dec 28, 2018
bce1b20
Update 后端程序员必备的Linux基础知识.md
Silverados Dec 28, 2018
d48618e
Update README.md
Snailclimb Dec 29, 2018
a15497e
Create 2018 summary.md
Snailclimb Dec 30, 2018
15e7c2f
Merge branch 'master' of https://github.com/Snailclimb/Java_Guide
Snailclimb Dec 30, 2018
3dc5234
Update README.md
Snailclimb Dec 30, 2018
8b66f9a
观察者模式
Jan 2, 2019
b5b0546
方法->访问
geyingauv Jan 3, 2019
57a525a
2147483648 -> 2147483647
fanofxiaofeng Jan 3, 2019
4a2d23f
Merge pull request #106 from zhanglijun1217/pr/20190102_observer_model
Snailclimb Jan 3, 2019
afae241
Merge pull request #108 from fanofxiaofeng/patch-2
Snailclimb Jan 3, 2019
42a2de8
Merge pull request #107 from geyingauv/master
Snailclimb Jan 3, 2019
cb1a51e
Update 设计模式.md
Snailclimb Jan 3, 2019
824e8ef
策略模式完成
Jan 3, 2019
cb9fc3b
Update README.md
Snailclimb Jan 4, 2019
bdbea61
Merge pull request #109 from zhanglijun1217/pr/20190102_observer_model
Snailclimb Jan 4, 2019
741f69a
Update Java基础知识.md
Snailclimb Jan 4, 2019
b8ce442
Update java programmer need know.md
Snailclimb Jan 4, 2019
1afa07a
修改错别字(拼写错误)
fanofxiaofeng Jan 5, 2019
83b3f83
Update JavaInterviewGithub.md
lzLee Jan 6, 2019
a9be772
Update README.md
Snailclimb Jan 6, 2019
7be08ff
Merge pull request #113 from lzLee/lzLee-patch-1
Snailclimb Jan 6, 2019
a343b37
修改错别字
RebeccaZhong Jan 7, 2019
41c5c2d
Update JavaInterviewGithub.md
lzLee Jan 7, 2019
cd1864e
更改了一些错别字和一些描述
xiaour Jan 8, 2019
ec53d59
randomAccess 拼写错误,markdown语法错误
xianlaioy Jan 9, 2019
089c907
Merge pull request #119 from xianlaioy/patch-1
Snailclimb Jan 11, 2019
eb84f45
Merge pull request #116 from xiaour/patch-1
Snailclimb Jan 11, 2019
f572447
Merge pull request #115 from lzLee/lzLee-patch-2
Snailclimb Jan 12, 2019
731d5c0
Merge pull request #114 from RebeccaZhong/master
Snailclimb Jan 12, 2019
d0423a1
Merge pull request #111 from fanofxiaofeng/patch-3
Snailclimb Jan 12, 2019
bd93ded
Merge pull request #103 from Silverados/patch-5
Snailclimb Jan 12, 2019
74c3faa
Merge pull request #101 from phasd/patch-1
Snailclimb Jan 12, 2019
f0c0caa
Update README.md
Snailclimb Jan 13, 2019
5f553d6
Update README.md
Snailclimb Jan 13, 2019
6c75c3a
Create ZooKeeper数据模型和常见命令.md
Snailclimb Jan 20, 2019
304eed2
Update README.md
Snailclimb Jan 20, 2019
61cdfd5
Update HashMap.md
Snailclimb Jan 20, 2019
7d5c78d
Update ZooKeeper数据模型和常见命令.md
Snailclimb Jan 21, 2019
bcdd60c
Update ZooKeeper数据模型和常见命令.md
Snailclimb Jan 21, 2019
f855ad9
Update ZooKeeper.md
Snailclimb Jan 21, 2019
1ecde79
Update ZooKeeper数据模型和常见命令.md
Snailclimb Jan 21, 2019
b07cf48
Update ZooKeeper数据模型和常见命令.md
Snailclimb Jan 21, 2019
8e17ece
Update AQS.md
lixd Jan 25, 2019
daabba3
Update 这几道Java集合框架面试题几乎必问.md
Jan 26, 2019
91bdbe1
排版
Gene1994 Jan 28, 2019
8a790a7
调整格式
Gene1994 Jan 28, 2019
10e52c1
Merge pull request #135 from Gene1994/patch-7
Snailclimb Jan 29, 2019
9601264
Update SpringBean.md
Snailclimb Jan 29, 2019
502a06c
Update SpringBean.md
Snailclimb Jan 29, 2019
2920f46
Fix:对线程状态的描述有误
Snailclimb Jan 29, 2019
0ad8524
Update 美团-基础篇.md
Snailclimb Jan 29, 2019
ee2aa4c
Merge pull request #134 from Gene1994/patch-6
Snailclimb Jan 30, 2019
5e6416b
Merge pull request #132 from yulizi1937/patch-1
Snailclimb Jan 30, 2019
e5b16ea
Merge pull request #131 from illusorycloud/patch-2
Snailclimb Jan 30, 2019
8fc8f50
Update 后端程序员必备的Linux基础知识.md
lixd Jan 31, 2019
eb91fb7
Update Java基础知识.md
Snailclimb Jan 31, 2019
49c8d4b
Update 后端程序员必备的Linux基础知识.md
kid1412621 Feb 11, 2019
ba5fdfc
1群人满,新建了1个QQ群
Snailclimb Feb 15, 2019
9ab2236
ADD:Java8 后接口可以有默认实现( default )
Snailclimb Feb 16, 2019
c7e5390
Update Java基础知识.md
Snailclimb Feb 16, 2019
3331e98
Fix:错别字
Snailclimb Feb 16, 2019
65fc7db
FIX:错别字
Snailclimb Feb 16, 2019
e1a4d4c
Merge pull request #142 from kid1412621/patch-1
Snailclimb Feb 16, 2019
0a53531
Merge pull request #136 from illusorycloud/patch-3
Snailclimb Feb 16, 2019
e0b872f
Update J2EE基础知识.md
maokegithub Feb 17, 2019
6cb2844
Update 2018 summary.md
Snailclimb Feb 17, 2019
b3f63ce
Create 8 张图读懂大型网站技术架构.md
Snailclimb Feb 17, 2019
63e9884
Update 8 张图读懂大型网站技术架构.md
Snailclimb Feb 17, 2019
93d84f4
Update README.md
Snailclimb Feb 17, 2019
e4b8d46
ADD:8 张图读懂大型网站技术架构
Snailclimb Feb 17, 2019
21ecdfe
Update 8 张图读懂大型网站技术架构.md
Snailclimb Feb 17, 2019
6004656
Update MySQL.md
Snailclimb Feb 18, 2019
eecda66
Update README.md
Snailclimb Feb 18, 2019
bd7b9b9
Create 【面试精选】关于大型网站系统架构你不得不懂的10个问题.md
Snailclimb Feb 18, 2019
9f80f82
Merge branch 'master' of https://github.com/Snailclimb/Java_Guide
Snailclimb Feb 18, 2019
adec5d1
ADD:【面试精选】关于大型网站系统架构你不得不懂的10个问题
Snailclimb Feb 18, 2019
06da889
Update 【面试精选】关于大型网站系统架构你不得不懂的10个问题.md
Snailclimb Feb 18, 2019
c691c56
Update 【面试精选】关于大型网站系统架构你不得不懂的10个问题.md
Snailclimb Feb 19, 2019
937b9af
修改两个错别字
fanofxiaofeng Feb 19, 2019
5412af1
统一 loadFactor 名称为加载因子, 为resize中的注释添加//
Flyonsnow Feb 20, 2019
d78821d
Update Java基础知识.md
Snailclimb Feb 20, 2019
ee072f8
Update MySQL.md
jerryldh Feb 21, 2019
6d48422
Create BIO,NIO,AIO summary.md
Snailclimb Feb 21, 2019
2ef10c8
Merge branch 'master' of https://github.com/Snailclimb/Java_Guide
Snailclimb Feb 21, 2019
29b9857
Merge pull request #155 from jerryldh/patch-1
Snailclimb Feb 21, 2019
3748061
Merge pull request #153 from Flyonsnow/master
Snailclimb Feb 21, 2019
4f43d28
Merge pull request #151 from fanofxiaofeng/patch-4
Snailclimb Feb 21, 2019
10c72c1
Merge pull request #149 from maokegithub/patch-4
Snailclimb Feb 21, 2019
7bef9e4
ADD:待办事件
Snailclimb Feb 21, 2019
3d1cfcf
Update Java基础知识.md
Snailclimb Feb 21, 2019
3d4edde
Update Java基础知识.md
Snailclimb Feb 21, 2019
c2d24e8
UPDATE:待办事件
Snailclimb Feb 21, 2019
455041d
Add:BIO,NIO,AIO 总结
Snailclimb Feb 21, 2019
bdf8aa5
Update BIO,NIO,AIO summary.md
Snailclimb Feb 21, 2019
41a4fdf
Merge branch 'master' of https://github.com/Snailclimb/Java_Guide
Snailclimb Feb 21, 2019
4433a4b
Update BATJ都爱问的多线程面试题.md
MckayRen Feb 21, 2019
46429c7
HTTPS中的TLS
LiWenGu Feb 21, 2019
d40d121
Update BIO,NIO,AIO summary.md
Snailclimb Feb 22, 2019
44acccc
Update BIO,NIO,AIO summary.md
Snailclimb Feb 22, 2019
40f1838
servlet 自动刷新
Feb 23, 2019
aca7d24
在grow()中,对hugeCapacity()方法的解释错误
Feb 23, 2019
bfb0475
Revert "在grow()中,对hugeCapacity()方法的解释错误"
Feb 23, 2019
e62ee07
修改扩容(grow)部分,对于hugeCapacity()方法的解释
Feb 23, 2019
ebef8b3
Merge pull request #159 from fantasygg/wk-branch
Snailclimb Feb 23, 2019
cd7ca3f
Merge pull request #157 from LiWenGu/master
Snailclimb Feb 23, 2019
d6ca057
Merge pull request #156 from MckayRen/master
Snailclimb Feb 23, 2019
49148a3
Add:HTTPS中的TLS
Snailclimb Feb 23, 2019
f0d2b98
Merge pull request #160 from fantasygg/Arraylist
Snailclimb Feb 23, 2019
c36aea9
Update README.md
Snailclimb Feb 26, 2019
96e4063
Fix:错别字
Snailclimb Feb 26, 2019
15e7eb7
Update J2EE基础知识.md
Snailclimb Feb 26, 2019
0e9ed08
Fix:描述错误
Snailclimb Feb 26, 2019
d85f369
Update:get和post区别?
Snailclimb Feb 26, 2019
10fbec0
Update HashMap.md
Snailclimb Feb 26, 2019
08eb3c0
Update Java基础知识.md
Snailclimb Feb 26, 2019
70f7e64
Update:我的微信
Snailclimb Feb 27, 2019
10686c9
Add:Java并发编程专栏限时优惠
Snailclimb Feb 27, 2019
6d7f37f
Update README.md
Snailclimb Feb 27, 2019
534c942
Update README.md
Snailclimb Feb 27, 2019
073c538
Update README.md
Snailclimb Feb 27, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Java相关/ArrayList-Grow.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@

```

细心的同学一定会发现 :**以无参数构造方法创建 ArrayList 时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为10。** 下面在我们分析 ArrayList 扩容时会降到这一点内容
细心的同学一定会发现 :**以无参数构造方法创建 ArrayList 时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为10。** 下面在我们分析 ArrayList 扩容时会讲到这一点内容

## 二 一步一步分析 ArrayList 扩容机制

Expand Down Expand Up @@ -308,7 +308,7 @@ ArrayList 源码中有一个 `ensureCapacity` 方法不知道大家注意到没

```

**最好在 add 大量元素之前用 `ensureCapacity` 方法,以减少增量从新分配的次数**
**最好在 add 大量元素之前用 `ensureCapacity` 方法,以减少增量重新分配的次数**

我们通过下面的代码实际测试以下这个方法的效果:

Expand Down Expand Up @@ -344,4 +344,4 @@ public class EnsureCapacityTest {

```

通过运行结果,我们可以很明显的看出向 ArrayList 添加大量元素之前最好先使用`ensureCapacity` 方法,以减少增量从新分配的次数
通过运行结果,我们可以很明显的看出向 ArrayList 添加大量元素之前最好先使用`ensureCapacity` 方法,以减少增量重新分配的次数
21 changes: 10 additions & 11 deletions Java相关/ArrayList.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

<!-- MarkdownTOC -->

- [ArrayList简介](#arraylist简介)
Expand All @@ -19,15 +18,15 @@
它继承于 **AbstractList**,实现了 **List**, **RandomAccess**, **Cloneable**, **java.io.Serializable** 这些接口。

在我们学数据结构的时候就知道了线性表的顺序存储,插入删除元素的时间复杂度为**O(n)**,求表长以及增加元素,取第 i 元素的时间复杂度为**O(1)**

  ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。

  ArrayList 实现了**RandomAccess 接口**,即提供了随机访问功能。RandomAccess 是 Java 中用来被 List 实现,为 List 提供**快速访问功能**的。在 ArrayList 中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。

  ArrayList 实现了**Cloneable 接口**,即覆盖了函数 clone(),**能被克隆**。

  ArrayList 实现**java.io.Serializable 接口**,这意味着ArrayList**支持序列化**,**能通过序列化去传输**。

  和 Vector 不同,**ArrayList 中的操作不是线程安全的**!所以,建议在单线程中才使用 ArrayList,而在多线程中可以选择 Vector 或者 CopyOnWriteArrayList。
### ArrayList核心源码

Expand Down Expand Up @@ -85,7 +84,7 @@ public class ArrayList<E> extends AbstractList<E>
}

/**
*默认构造函数,其默认初始容量为10
*默认构造函数,DEFAULTCAPACITY_EMPTY_ELEMENTDATA 为0.初始化为10,也就是说初始其实是空数组 当添加第一个元素的时候数组容量才变成10
*/
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
Expand Down Expand Up @@ -177,7 +176,7 @@ public class ArrayList<E> extends AbstractList<E>
newCapacity = minCapacity;
//再检查新容量是否超出了ArrayList所定义的最大容量,
//若超出了,则调用hugeCapacity()来比较minCapacity和 MAX_ARRAY_SIZE,
//如果minCapacity大于最大容量,则新容量则为ArrayList定义的最大容量,否则,新容量大小则为 minCapacity。
//如果minCapacity大于MAX_ARRAY_SIZE,则新容量则为Interger.MAX_VALUE,否则,新容量大小则为 MAX_ARRAY_SIZE。
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
// minCapacity is usually close to size, so this is a win:
Expand Down Expand Up @@ -631,7 +630,7 @@ public class ArrayList<E> extends AbstractList<E>
newCapacity = minCapacity;
//再检查新容量是否超出了ArrayList所定义的最大容量,
//若超出了,则调用hugeCapacity()来比较minCapacity和 MAX_ARRAY_SIZE,
//如果minCapacity大于最大容量,则新容量则为ArrayList定义的最大容量,否则,新容量大小则为 minCapacity。
//如果minCapacity大于MAX_ARRAY_SIZE,则新容量则为Interger.MAX_VALUE,否则,新容量大小则为 MAX_ARRAY_SIZE。
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity(minCapacity);
// minCapacity is usually close to size, so this is a win:
Expand All @@ -653,14 +652,14 @@ public class ArrayList<E> extends AbstractList<E>

3. .java 中的**size()方法**是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!


#### 内部类
```java
(1)private class Itr implements Iterator<E>
(2)private class ListItr extends Itr implements ListIterator<E>
(3)private class SubList extends AbstractList<E> implements RandomAccess
(4)static final class ArrayListSpliterator<E> implements Spliterator<E>
```
```
  ArrayList有四个内部类,其中的**Itr是实现了Iterator接口**,同时重写了里面的**hasNext()**,**next()**,**remove()**等方法;其中的**ListItr**继承**Itr**,实现了**ListIterator接口**,同时重写了**hasPrevious()**,**nextIndex()**,**previousIndex()**,**previous()**,**set(E e)**,**add(E e)**等方法,所以这也可以看出了**Iterator和ListIterator的区别:**ListIterator在Iterator的基础上增加了添加对象,修改对象,逆向遍历等方法,这些是Iterator不能实现的。
### <font face="楷体" id="6"> ArrayList经典Demo</font>

Expand Down
Loading