zoukankan      html  css  js  c++  java
  • 数组

    定义

    数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。

    关键词

    • 线性表:数据线性,每个线性表上的数据最多只有前和后两个方向。
    • 连续的内存空间和相同类型的数据。这个特点使得数组有优点“随机访问”,同时也造成数组删除和插入元素的效率低

    优点:数组根据下标随机访问数组元素

    计算机会给每个内存单元分配一个地址,计算机通过地址访问内存中的数据。所以当计算机要随机访问内存中某个数组元素时,需要先确定元素存储的内存地址,这里有一个公式

    a[i]_address = base_address + i * data_type_size
    
    • data_type_size表示数组中每个元素的大小

    缺点:插入和删除的效率低

    为保证内存数据的连续性,当插入和删除元素时需要大规模的数据搬移,

    面试题:数组和链表的区别

    链表适合插入和删除,时间复杂度是$O(1)$,数组支持随机访问,根据下标随机访问的时间复杂度是$O(1)$

    JVM标记清除算法

    在标记阶段,会遍历所有GC ROOTS,将所有GC ROOTS可达的对象标记为存货,只有当标记工作完成后,清理工作才会开始。问题:标记和清理效率都不高,会产生不连续的内存空间碎片

  • 相关阅读:
    华为内部面试题库(20)
    华为内部面试题库(18)
    华为内部面试题库(14)
    华为内部面试题库(12)
    华为内部面试题库(16)
    华为内部面试题库(17)
    华为内部面试题库(11)
    华为内部面试题库(13)
    Windows 危险的注册表键
    逆向工程师要学什么?
  • 原文地址:https://www.cnblogs.com/zxhyJack/p/10602786.html
Copyright © 2011-2022 走看看