zoukankan      html  css  js  c++  java
  • 面试基础必备

    1、hashmap

    数组:连续的存储单元。Java.util.ArrayList的底层就是数组。

    链表:物理存储单元上非连续的、非顺序的存储结构。lingkedList底层是链表,查找慢,查找慢,查找慢。。。

    存储put的时候-----算法是:hashcode

    hash碰撞-不能让后面来的数据覆盖,就要应用到链表,后来的元素在原数组中,之前的用指针指向。

    get方法   找到hash值判断key和hash,不相等的时候去判断next是否为空,不为空继续向下找。

    红黑树是为了解决链表过长产生的效率问题。

    一开始不直接用红黑树,是因为红黑树插入太慢,一直在左旋,右旋。>8变

    hashmap扩容阈值,数组本身阈值16,但是有个扩容因子,0.75f,就是数组长度>12.就扩容致当前数组长度的2倍。

    2、线程安全的情况

    并发的情况,并且没有扩容也就是没有调用put方法,只调用get方法。

  • 相关阅读:
    Sqoop相关
    Hive桶表
    Hive视图
    Hive的Explain命令
    Django路由分发
    Django对应的路由名称
    Django基于正则表达式的URL(2)
    Django基于正则表达式的URL(1)
    Django模板语言循环字典
    Django的CBV和FBV
  • 原文地址:https://www.cnblogs.com/xiangyucc/p/13813465.html
Copyright © 2011-2022 走看看