记录下去年(2020年)找工作的面试题及参考资料。

C++

  • 智能指针的实现原理
  • 多态的实现原理[2]
  • C++11/14/17新特性[3]
  • 手写memcpy和memmove[4]
  • 介绍下boost库

计算机网络

  1. nagle算法[5]
  2. time_wait过多怎么解决[6]
  3. close_wait过多怎么解决[7]
  4. 拥塞算法[8]
  5. HTTPS执行过程[9]
  6. TCP 状态机[10]
  7. Dijkstra算法[11]
  8. 介绍tcp no delay[12]
  9. HTTP2.0[13]

golang

  • sync once实现
  • waitgroup实现
  • nocopy[14]
  • mutex设计思想[15]
  • mutex实现与演进[16]
  • 为什么锁不能复制[18]
  • silce实现[20]
  • atomic实现
  • goroutine大致原理
  • goroutine调度
  • 垃圾回收
  • 内存分配

计算机基本概念

  • 为什么计算机用2的补码[21]
  • 浮点数如何存储[22]

操作系统

  • 多核CPU如何进行数据同步[23]
  • 什么场景使用自旋锁[24]
  • epoll[25]
  • cpu 伪共享[26]
  • 线程同步[27]
  • 进程同步[28]
  • CAS原理[29]
  • 内存屏障[30]
  • 伙伴系统[31]
  • epoll[32]
  • epoll 边沿触发和水平触发[33]
  • cpu load average[34]
  • 进程有哪些不同状态
  • 为什么L1 cache比L2 cache快
  • I/O多路复用,这个复用指的是什么[35]

算法

  • treap树
  • 红黑树
  • LRU[36]
  • LRU-K
  • innodb lru[37]
  • bloom filter[38]
  • cuckoo filter[39]
  • KMP算法
  • LSM tree
  • 排序算法[40]
  • AVL树[41]
  • 快速排序[42]
  • 时间复杂度LOGN指的是什么[43]
  • 堆排序[44]
  • 大数排序 TOPN[45]
  • HashedWheelTimer[46]
  • geohash[47]
  • m*n棋盘,多少种走法[48]
  • 倒排索引
  • mark-sweep垃圾回收算法[49]
  • 两个栈实现一个队列[50]
  • 单调栈[51]
  • trie树[52]
  • 单链表合并[53]
  • 删除链表倒数第K个节点
  • 线段树
  • 合并二叉搜索树[54]
  • 倒排索引 如何merge返回结果
  • 找出无序数组的中位数[55]

redis

  • rehash[62]
  • kedis codis[63]
  • 跳跃表[64]
  • ziplist[65]
  • zset[66]
  • 如何保证数据不丢失 AOF RDB[67]

其他

  • 分布式事务[56]
  • 限流算法[57]
  • 一致性hash[58]
  • zookeeper[59]
  • zookeeper选举
  • CAP[60]
  • 如何判断死锁存在
  • 朋友圈设计[61]

当时查的资料备份:

[2]

多态的实现原理: c++中多态的实现原理?

[3]

C++11新特性: C++开发者都应该使用的10个C++11特性 - DoubleLi - 博客园

[4]

memory-copy是什么: memcpy、memmove、memset及strcpy函数实现和理解 - 狸猫酱 - 博客园

[5]

nagle算法: TCP的Nagle算法与ACK延滞算法

[6]

time_wait过多怎么解决: TCP 的那些事儿(上) | 酷 壳 - CoolShell

[7]

close_wait过多怎么解决: 浅谈CLOSE_WAIT | 火丁笔记

[8]

拥塞算法: TCP的流量控制和拥塞控制_流浪的虾壳-CSDN博客_tcp流量控制

[9]

HTTPS执行过程: SSL/TLS通信 · Issue #31 · zhangyachen/zhangyachen.github.io

[10]

TCP 状-态机: TCP 的那些事儿(上) | 酷 壳 - CoolShell

[11]

Dijkstra算法: dijkstra算法:寻找到全图各点的最短路径

[12]

tcp no delay: TCP中的NO_DELAY_Spground-CSDN博客

[13]

HTTP2.0: HTTP/2 相比 1.0 有哪些重大改进?

[14]

nocopy: https://medium.com/@bronzesword/ ... nd-how-12396c31de47

[15]

mutex设计思想: gnehsbc:一份详细注释的go Mutex源码

[16]

mutex实现与演进: GO: sync.Mutex 的实现与演进

[17]

mutex详细源码注释: sync.mutex 源代码分析

[18]

为什么锁不能复制: https://eli.thegreenplace.net/20 ... ying-mutexes-in-go/

[19]

结构体方法使用使用value和pointer: https://golang.org/doc/faq#methods_on_values_or_pointers

[20]

silce实现: 深入解析 Go 中 Slice 底层实现

[21]

为什么计算机用2的补码: 关于2的补码 - 阮一峰的网络日志

[22]

浮点数: 关于浮点数的几个有意思的例子 · Issue #131 · zhangyachen/zhangyachen.github.io

[23]

多核cpu和内存数据如何更新: 一篇文章让你明白CPU缓存一致性协议MESI

[24]

自旋锁: JavaGuide:面试必备之深入理解自旋锁

[25]

epoll: hechen:一文看懂IO多路复用

[26]

cpu 伪共享: https://colobu.com/2019/01/24/ca ... -performance-in-go/

[27]

线程同步: 进程同步和线程同步概述 - 云+社区 - 腾讯云

[28]

进程同步: 进程同步和线程同步概述 - 云+社区 - 腾讯云

[29]

CAS原理: 程序员囧辉:面试必问的CAS,你懂了吗?

[30]

内存屏障: https://zh.wikipedia.org/wiki/%E ... 8%E5%B1%8F%E9%9A%9C

[31]

伙伴系统: 伙伴分配器的一个极简实现 | 酷 壳 - CoolShell

[32]

epoll: Dreamgoing:深入理解 Epoll

[33]

epoll 边沿触发和水平触发: Dreamgoing:深入理解 Epoll

[34]

cpu load average:

http://www.ruanyifeng.com/blog/2

... rage_explained.html

[35]

I/O多路复用,这个复用指的是什么: hechen:一文看懂IO多路复用

[36]

LRU: 聊聊缓存淘汰算法-LRU 实现原理

[37]

innodb lru: InnoDB 缓冲池LRU策略及关键特性

[38]

bloom filter: golang bloom filter实现

[39]

cuckoo filter: Cuckoo Filter:设计与实现 | 酷 壳 - CoolShell

[40]

排序算法: 算法设计:两种快速排序代码实现 - Sunrise_1018 - 博客园

[41]

AVL树: AVL树的旋转图解和简单实现_喵了个呜的博客-CSDN博客_avl树旋转

[42]

快速排序: [图解] 快速排序

[43]

时间复杂度LOGN: 时间复杂度 O(log n) 意味着什么?

[44]

堆排序: 图解排序算法(三)之堆排序 - dreamcatcher-cx - 博客园

[45]

大数排序 TOPN: 如何在10亿个整数中找出前1000个最大的数(TopN算法)_chikoucha6215的博客-CSDN博客

[46]

HashedWheelTimer: 大批量定时任务管理利器HashedWheelTimer - 二两豆腐的个人空间 - OSCHINA - 中文开源技术交流社区

[47]

geohash: GeoHash算法原理及实现方式_universe_ant的博客-CSDN博客_geohash算法

[48]

m*n棋盘,多少种走法: 计算n x m的棋盘格子的走法_牛客博客

[49]

mark-sweep垃圾回收算法: 标记、清除算法是如何处理循环引用?_DontesMore的博客-CSDN博客

[50]

两个栈实现一个队列: https://www.cnblogs.com/wanghui9 ... /11/22/2259391.html

[51]

单调栈: LeetCode-739.每日温度 || 是与非博客

[52]

trie树: Trie树(字典树,单词查找树)_forever_dreams的博客-CSDN博客_单词查找树

[53]

单链表合并: 8.合并两个有序的单链表,合并之后的链表依然有序【出现频率高】 - 薇薇一笑g - 博客园

[54]

合并二叉搜索树: 二叉查找树中的插入查找和删除_naget的博客-CSDN博客

[55]

找出无序数组的中位数: 找出一个无序数组的中位数_u010325193的博客-CSDN博客_数组找中位数

[56]

分布式事务: 分布式系统的事务处理 | 酷 壳 - CoolShell

[57]

限流算法: 不得不谈的限流算法

[58]

一致性hash: 一致性hash · Issue #74 · zhangyachen/zhangyachen.github.io

[59]

zookeeper: zookeeper的作用

[60]

CAP: CAP原理_爱琴孩的博客-CSDN博客_cap原理

[61]

朋友圈设计: 微信朋友圈是怎么做的架构?

[62]

rehash: 渐进式 rehash - Redis 设计与实现

[63]

kedis codis: redis集群之Codis - 不懒人 - 博客园

[64]

跳跃表: Redis 为什么用跳表而不用平衡树?

[65]

ziplist: redis zset底层实现原理

[66]

zset: redis zset底层实现原理

[67]

如何保证数据不丢失 AOF RDB: redis持久化的几种方式 - 仗剑走天涯| - 博客园

(完)

**朋友们可以关注下我的公众号,获得最及时的更新:**

![image](https://user-images.githubusercontent.com/14103319/92430320-11583200-f1c7-11ea-940d-1e297d2f394b.png)

找工作面试题记录与参考资料(Golang/C++/计算机网络/操作系统/算法等)的更多相关文章

  1. 2017、2018面试分享(js面试题记录)记得点赞分享哦;让更多的人看到~~

    2017面试分享(js面试题记录) 1. 最简单的一道题 '11' * 2 'a8' * 3 var a = 2, b = 3; var c = a+++b; // c = 5 2. 一道this的问 ...

  2. 数据结构和算法(Golang实现)(20)排序算法-选择排序

    选择排序 选择排序,一般我们指的是简单选择排序,也可以叫直接选择排序,它不像冒泡排序一样相邻地交换元素,而是通过选择最小的元素,每轮迭代只需交换一次.虽然交换次数比冒泡少很多,但效率和冒泡排序一样的糟 ...

  3. 数据结构和算法(Golang实现)(21)排序算法-插入排序

    插入排序 插入排序,一般我们指的是简单插入排序,也可以叫直接插入排序.就是说,每次把一个数插到已经排好序的数列里面形成新的排好序的数列,以此反复. 插入排序属于插入类排序算法. 除了我以外,有些人打扑 ...

  4. 数据结构和算法(Golang实现)(23)排序算法-归并排序

    归并排序 归并排序是一种分治策略的排序算法.它是一种比较特殊的排序算法,通过递归地先使每个子序列有序,再将两个有序的序列进行合并成一个有序的序列. 归并排序首先由著名的现代计算机之父John_von_ ...

  5. 数据结构和算法(Golang实现)(24)排序算法-优先队列及堆排序

    优先队列及堆排序 堆排序(Heap Sort)由威尔士-加拿大计算机科学家J. W. J. Williams在1964年发明,它利用了二叉堆(A binary heap)的性质实现了排序,并证明了二叉 ...

  6. 数据结构和算法(Golang实现)(26)查找算法-哈希表

    哈希表:散列查找 一.线性查找 我们要通过一个键key来查找相应的值value.有一种最简单的方式,就是将键值对存放在链表里,然后遍历链表来查找是否存在key,存在则更新键对应的值,不存在则将键值对链 ...

  7. 数据结构和算法(Golang实现)(27)查找算法-二叉查找树

    二叉查找树 二叉查找树,又叫二叉排序树,二叉搜索树,是一种有特定规则的二叉树,定义如下: 它是一颗二叉树,或者是空树. 左子树所有节点的值都小于它的根节点,右子树所有节点的值都大于它的根节点. 左右子 ...

  8. 数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树

    某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学.在这里,我们区分开左倾红黑树和普通红黑树. 红黑树 ...

  9. golang实现文字云算法

    golang实现文字云算法 项目链接 https://github.com/bangbaoshi/wordcloud 效果图 测试步骤如下 git clone https://github.com/b ...

随机推荐

  1. 【Linux】fio测试读写速度

    需要安装fio yum install fio -y 有很多依赖包     FIO用法: 随机读:(可直接用,向磁盘写一个2G文件,10线程,随机读1分钟,给出结果) fio -filename=/h ...

  2. 【Oracle】等待事件之 V$SESSION_WAIT

    (1)-V$SESSION_WAIT 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存 ...

  3. ctfhub技能树—密码口令—默认口令

    打开靶机 查看页面内容 根据题目提示,去搜索北京亿中邮信息技术有限公司邮件网关的默认口令 尝试登录 成功拿到flag

  4. ctfhub技能树—信息泄露—git泄露—index

    打开靶机 查看页面信息 使用dirsearch进行扫描 使用githack工具处理git泄露情况 使用git log命令查看历史记录 与 add flag 9b5b58-- 这次提交进行比对 即可拿到 ...

  5. SAP中的事务锁

    我们知道sap中的事物锁tcode是SM01. 细细研究发现,其实无外乎就是将tstc表中的事务码对应的字段CINFO的值加上HEX20 解锁就是还原成原来的值. 当然也发现了,调用了一个系统函数AU ...

  6. REUSE_ALV_GRID_DISPLAY_LVC 的fieldcat定义

    在使用REUSE_ALV_GRID_DISPLAY_LVC函数的时候,需要注意的是,内表中如果有P类型的或者数据元素为BDMNG等类型是,在定义fieldcat的时候,注意要指定fieldcat-da ...

  7. 如何用Python中自带的Pandas和NumPy库进行数据清洗

    一.概况 1.数据清洗到底是在清洗些什么? 通常来说,你所获取到的原始数据不能直接用来分析,因为它们会有各种各样的问题,如包含无效信息,列名不规范.格式不一致,存在重复值,缺失值,异常值等..... ...

  8. Cookie&Session&Jsp总结

    知识点梳理 Cookie&Session&Jsp 1 会话技术 1.1 会话管理概述 1.1.1 会话技术介绍 会话:浏览器和服务器之间的多次请求和响应 (一次对话) 为了实现一些功能 ...

  9. 入门OJ:八中生成树2

    题目描述 八中里面有N个建设物,M条边.对于这种要建最小生成树的问题,你应该很熟练了.现在老大决定降低某条边的费用,然后这条边必须要被选中,因为这条路他每天都要走,自然......问选了这条边后是否可 ...

  10. SpringCloud Alibaba Nacos注册中心源码浅析

    一.前置了解 1.1 简介 Nacos是一款阿里巴巴推出的一款微服务发现.配置管理框架.我们本次对将对它的服务注册发现功能进行简单源码分析. 1.2 流程 Nacos的分析分为两部分,一部分是我们的客 ...