1.在看Vector源码是有2个小知识点比较疑惑2.疑惑代码如下/**This implements the unsynchronized semantics of ensureCapacity.Synchronized methods in this class can internally call thismethod for ensuring capacity without incurring the cost of anextra synchronization.*@see #ensureCapacity(int)*/void ensureCapacityHelper(int minCapacity) { // overflow-conscious code
if (minCapacity - elementData.length > 0)
grow(minCapacity);}/**The maximum size of array to allocate.Some VMs reserve some header words in an array.Attempts to allocate larger arrays may result inOutOfMemoryError: Requested array size exceeds VM limit*/static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;3.疑惑问题点如下:问题点1:if (minCapacity - elementData.length > 0),为啥不这样写if(minCapacity>elementData.length),效率高在哪?问题点2:MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;为啥是减8而不是其他,注释没看明白是啥意思
添加回答
举报
0/150
提交
取消