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。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步