美文网首页
2020-04-28

2020-04-28

作者: opensesame | 来源:发表于2020-04-28 23:56 被阅读0次

一、继承关系

arrayList继承自抽象类abstractList,并且实现了四个接口,分别是List,RandomAccess,Cloneable,Serializable。其余三个不专门列出来说明了,单独记下RandomAccess,可以参考这个文章的讲述:https://juejin.im/post/5a26134af265da43085de060

二、属性

1、

    private static final int DEFAULT_CAPACITY = 10;  //默认初始化容量

    private static final Object[] EMPTY_ELEMENTDATA = {}; //一个object对象的空数组

    private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};//和上一个属性暂时看不出来有什么明显的区别,后面再进行区分

    transient Object[] elementData; //transient修饰确保该属性不会被序列化,首次列表创建的时候是为空的,只有第一次调用add方法增加元素的时候才会初始化容量为10

直接使用new ArrayList的时候,实质是:

elmentData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;

扩容的方法是私有的,grow(int minCapacity),扩容原理:


private Object[] grow(int minCapacity) {
   int oldCapacity = elementData.length;
if (oldCapacity > 0 || elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA) {
  int newCapacity = ArraysSupport.newLength(oldCapacity,minCapacity-oldCapacity,oldCapccity>1);
}
}

相关文章

  • MyBatist-并发操作异常

    异常信息如下: 2020-04-28 18:22:00 [taskExecutor-1] ERROR org.sp...

  • 2020-04-28

    2020-04-28 2020.4.2xiaofang 反思日记 1、今天有没有做傻事儿? 今天因为分享拖延,结果...

  • Electron 踩坑记录(二)

    场景描述 -- 2020-04-28 更新:由于 flash 30 版本以后会出现提示“未能正确加载必要组件”(其...

  • jenkins初始界面部署

    2020-04-28 1.打开jenkins页面(ip指我的云服务器外网ip) http://ip:8080 2....

  • 自定义注解实现加解密及脱敏

    title: ep_自定义注解实现加解密及脱敏date: 2020-04-28 09:44 定义自定义注解 首先定...

  • 阅读|首席运营官 428总结

    活动开展时间:2020-04-28 10:00-12:00 活动主题:不同主题内容读书会演练 活动人数:6人 参会...

  • 收到简书消息

    收到简书消息: 你投稿的文章《2020-04-28》已被加入专题《全职业写作活动第二期∣学生》 2020-04-2...

  • 04-28读经 代下20章

    2020-04-28读经 代下20章 读经观察: 1-4,摩押、亚们、迷乌尼联军攻击犹大国。约沙法王宣告全国禁食...

  • 2020-04-28

    2020-04-28 商店里的陈设很整洁,不见一丝凌乱,可黑夜将至,归家的人脚步匆匆,商店里客人自然不愿意多停留,...

  • 三明治沟通法NO.163

    2020-04-28 量期二 晴 三明治沟通法NO.163 今天听了大山笑长的课后,收获颇多。 一句话使人跳,...

网友评论

      本文标题:2020-04-28

      本文链接:https://www.haomeiwen.com/subject/arcwwhtx.html