05数组

1. 数组是什么?

数组是一种线性表数据结构,拥有连续的内存空间存储具有相同类型的数据
面试问题纠正
数组适合查找操作,排好序的数组使用二分法时间复杂度是O(logn),数组支持随机访问,根据下表随机访问的时间复杂度是O(1)

2. ArrayList能否代替数组?

1. ArrayList底层实现就是数组,将很多数组操作细节封装起来,
2. 还有就是支持动态扩容,我们完全不用关心底层的扩容逻辑
3. 如果事先能确定需要存储的数据大小,最好指定ArrayList的大小

3.数组的删除引出JVM标记-清除算法

将可以引用的对象进行标记为存活对象,之后再执行清除没有标记的对象操作。
缺点
1. 效率不高(需要扫描全部对象标记)
2. 产生内存碎片

 

总结

基础数据结构,理解概念,举一反三

原文出处:https://time.geekbang.org/column/article/40961

posted @ 2019-01-03 16:24  华格瑞沙  阅读(94)  评论(0编辑  收藏  举报