1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-10 00:41:37 +08:00

[fix]扩容问题

This commit is contained in:
shuang.kou 2020-03-13 20:10:02 +08:00
parent d54ddaee6d
commit 0de7a49c12

View File

@ -145,7 +145,7 @@
}
```
**int newCapacity = oldCapacity + (oldCapacity >> 1),所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍JDK1.6版本以后)** JDk1.6版本时,扩容之后容量为 1.5 倍+1详情请参考源码
**int newCapacity = oldCapacity + (oldCapacity >> 1),所以 ArrayList 每次扩容之后容量都会变为原来的 1.5 倍左右oldCapacity为偶数就是1.5倍否则是1.5倍左右)!** 奇偶不同,比如 10+10/2 = 15, 33+33/2=49。如果是奇数的话会丢掉小数.
> ">>"(移位运算符):>>1 右移一位相当于除2右移n位相当于除以 2 的 n 次方。这里 oldCapacity 明显右移了1位所以相当于oldCapacity /2。对于大数据的2进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源