Java源码中遇到的一些问题(更新中)

1子类和父类实现同样的接口,这样做有什么意义吗?

举例:Vector和AbstractList的类签名

public class Vector<E>
    extends AbstractList<E>
    implements List<E>, RandomAccess, Cloneable, java.io.Serializable
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> 

AbstractList是Vector的父类,该类实现了List接口,而Vector也实现了List接口。

回答:没什么特殊意义 ,可能是为了代码的可读性。(网上讨论的答案,总感觉怪怪的)

2 ArrayList的最大长度MAX_ARRAY_SIZE为什么是Integer.MAX_VALUE - 8

存储Headerwords,避免一些机器内存溢出,减少出错几率,所以少分配。

最大还是能支持到Integer.MAX_VALUE。

原文地址:https://www.cnblogs.com/ouym/p/8862178.html