2023版golang面试题100道(map)

2023-10-27

面试题合集目录

map查找?

假设当前 B=4 即桶数量为2^B=16个,要从map中获取k4对应的value
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

k4的查找步骤:
①计算k4的hash值;
②通过低B位来确定在哪号桶,此时B为4,所以取k4对应哈希值的后4位,也就是0101,0101用十进制表示为5,所以在5号桶);
③根据k4对应的hash值高8位快速确定是在这个桶的哪个位置(额外说明一下,在bmap中存放了每个key对应的tophash,是key的哈希值高8位),一旦发现高8位一致,则会执行下一步;
④对比key完整的hash是否匹配,如果匹配则获取对应value;
⑤如果都没有找到,就去连接的下一个溢出桶中找。

tophash可以快速确定key是否正确,也可以把它理解成一种缓存措施,如果高8位都不对了,后面就没有必要比较了。

map的底层实现?

map是一种key-value的键值对存储结构,其中key不能重复,底层用hash表存储。
map的数据结构在源码结构中的关键字段如下,在src/runtime/map.go中:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023版golang面试题100道(map) 的相关文章

  • 【满分】【华为OD机试真题2023 JAVA&JS】任务总执行时长

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 任务总执行时长 知识点数组循环递归 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 任务编排服务负责对任务进行组合调度 参与编排的任务有两种类型 其中一种执行时长

随机推荐

  • 深入理解Java虚拟机jvm-对象的访问定位

    对象的访问定位 句柄 直接指针 优劣 句柄 直接指针 创建对象自然是为了后续使用该对象 我们的Java程序会通过栈上的reference数据来操作堆上的具 体对象 由于reference类型在 Java虚拟机规范 里面只规定了它是一个指向对
  • 云原生Kubernetes:K8S集群使用带凭证的harbor仓库

    目录 一 理论 1 部署harbor 创建私有项目 使用凭证登录 二 实验 1 部署harbor 创建私有项目 使用凭证登录 三 问题 1 harbor页面无法打开 2 生成harbor 登录凭据资源清单报错 3 tomcat deploy
  • 20220129刷题--第4题-- cookie

    20220129刷题 攻防世界 web新手第4题 cookie 直接burp抓包 看到 太明显了 查看cookie php呗 还得看包 看到response中 flag cyberpeace 10c8fa3cccaab62eaf04ff97
  • 刷脸支付服务商注定掀起一场商业革命

    随着5G时代的到来 互联网 AI智能 云计算 物联网等技术得到了高速发展 集这些技术于一身的刷脸支付注定掀起一场商业革命 对于创业者来说 刷脸支付代理是一个新的选择 在狂热的市场下 各大刷脸支付服务商层出不穷 为了招募代理奇招频出 何选择家
  • Stream流

    Stream流 文章目录 文章目录 Stream流 1 集合处理数据的弊端 2 Steam流式思想概述 3 Stream流的获取方式 3 1 根据Collection获取 3 2 通过Stream的of方法 4 Stream常用方法介绍 4
  • hashmap底层以及红黑树 终于懂了!!!

    目录 0 引言 1 红黑树 0 引言 jdk 1 7里面 HashMap中的数据结构是数组 单链表的组合 以键值对 key value 的形式存储元素的 通过put 和get 方法储存和获取对象 在JDK1 6 JDK1 7中 HashMa
  • openwrt--uci指令的使用

    UCI简介 UCI是集中式配置信息管理接口 Unified Configuration Interface 的缩写 他是OpenWrt引进的一套配置参数管理系统 UCI管理了OpenWrt下最主要的系统配置参数并且提供了简单 容易 标准化的
  • JAVA零基础学习课程个人笔记(全手打)

    目录 chapter01 Chapter02 目录 Chapter02 Day05 07 方法 Method 课堂笔记 chapter02 控制循环中断继续语句 chapter03 0 面向对象 chapter03 1 封装 chapter
  • 再见前端!纯Java撸个管理系统,这框架用起来贼爽!

    摘要 一个管理系统 往往需要后端 前端一起实现 单表CRUD操作往往都差不多 我们可以使用代码生成器来实现 有时候我们的管理系统只需要一些简单的CRUD页面 有没有什么框架能做到不写前端代码 纯Java撸个管理系统呢 这里推荐一个全栈类框架
  • golang通过代理访问url

    直接上实例 命令测试 curl proxy 10 0 55 22 8080 v http www baidu com package main import fmt io ioutil net http net url net time f
  • Parcel是如何存储数据

    Parcel学习 Parcel是如何存储数据的 第一步 第二步 第三步 如何读取呢 Parcel和serializable Parcel是如何存储数据的 疑问 平时java使用它进行序列化要关注的点就是读写顺序 为什么要注意读写顺序呢 在这
  • python基础十一:异常处理以及文件操作

    1 异常 1 1异常简介 程序在运行过程中可能会出现一些错误 比如 使用了不存在的索引 两个不同类型的数据相加 这些错误我们称之为异常 处理异常 程序运行时出现异常 目的并不是让我们的程序直接终止 Python是希望在出现异常时 我们可以编
  • 前端js计算导致的精度问题解决方案

    前言 js计算会导致很多奇奇怪怪的问题 这是由于js使用二进制 有一些浮点数用二进制表示时是无穷的 而为节省存储空间只存储64位 精度丢失从而导致计算出现问题 一 写个方法 自己写一个方法来解决 二 使用插件 使用 number preci
  • (二)ChatGLM-6B模型部署以及ptuning微调详细教程

    文章目录 介绍什么是ChatGLM 6B Torch 安装ChatGLM 6B模型 安装过程 Ptuning微调 安装过程 初始化环境 训练 准备自己的数据集 推理 验证 问题和思考 泛化学习 simbert 不属于必学 介绍什么是Chat
  • CSS Modules

    CSS Modules CSS模块 对CSS进行模块化处理 目的 解决在 React 开发时 组件之间类名重复导致的样式冲突问题 使用后 会自动生成类名 类名格式 filename classname hash filename 文件名 c
  • 华为防火墙IPsec点对点配置解析

    一 完成基本互联 主机直连的接口为trust区域 防火墙之间互联的接口为untrust区域 二 左边的防火墙IPsec的配置 1 Ike Proposal 的创建 ike proposal xx 首先创建ike proposal xx 这一
  • 在PHP脚本中的转义字符 \

    在编写PHP脚本的过程中 经常在遇到写路径或者某些特殊字符时 要用到转义字符 反斜线 比如 在使用fopen 函数的时候 我们要写参数 即要打开的路径 fp fopen DOCUMENT ROOT orders orders txt w 在
  • Triangle Tessellation with OpenGL 4.0

    FROM http prideout net blog p 48 This is the first of a two part article on tessellation shaders with OpenGL 4 0 This en
  • AVPlayer 视频播放

    1 AVPlayer AVPlayer 是一个用来播放基于时间的视听媒体的控制器对象 一个队播放和资源时间相隔信息进行管理的对象 而非一个视图或窗口控制器 AVPlayer支持播放从本地 分步下载或通过HTTP Live Streaming
  • 2023版golang面试题100道(map)

    面试题合集目录 map查找 假设当前 B 4 即桶数量为2 B 16个 要从map中获取k4对应的value 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 k4的查找步骤 计算k4的hash值 通过低B位来确定在哪号桶