记录下去年(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. 【高级排序算法】2、归并排序法的实现-Merge Sort

    简单记录 - bobo老师的玩转算法系列–玩转算法 -高级排序算法 Merge Sort 归并排序 Java实现归并排序 SortTestHelper 排序测试辅助类 package algo; im ...

  2. 【Oracle】表空间配额问题

    由于需求,需要新建用户,但是新建的用户,会有相关的配额跟着,莫名其妙的问题让人很头疼 下面介绍下如何修改成不限制配额 select * from user_ts_quotas ; alter user ...

  3. 【Oracle LISTNER】oracle Listener 宕机解决办法

    今天想起了很久没用的oracle库,用plsql尝试连接,发现报超时错误,以为是偶然,多次尝试连接,发现还是超时,于是登录到系统中,查看数据库情况,发现正常查询和修改添加,感觉不是数据库问题,查看监听 ...

  4. C#数组的 Length 和 Count()

    C#数组的 Length 和 Count() C# 数组中 Length 表示数组项的个数,是个属性.而 Count() 也是表示项的个数,是个方法,它的值和 Length 一样.但实际上严格地说, ...

  5. oracle 12C单实例打PSU

    前提: oracle不管打什么样的补丁,readme都是很好的参考资料. Oracle每季度都会更新一个最新的PSU,现在12.1.0.2.0的最新的PSU是Patch 26925311. 由于今天白 ...

  6. 一种获取context中keys和values的高效方法 | golang

    我们知道,在 golang 中的 context 是一个非常重要的包,保存了代码活动的上下文.我们经常使用 WithValue() 这个方法,来往 context 中 传递一些 key value 数 ...

  7. Java集合List-差集、并集、交集

    Java集合List的差集.并集.交集 转载于:https://www.cnblogs.com/qlqwjy/p/9812919.html 一.List的差集 @Test public void te ...

  8. 30分钟带你了解「消息中间件」Kafka、RocketMQ

    消息中间件的应用场景 主流 MQ 框架及对比 说明 Kafka 优点 Kafka 缺点 RocketMQ Pulsar 发展趋势 各公司发展 Kafka Kafka 是什么? Kafka 术语 Kaf ...

  9. a.default.ERROR.httpAjax is not a function

    原因1: 使用的是jQuery的slim构建,它删除了一些东西,ajax就是其中之一. 解决方法: 在此处下载常规(压缩或非压缩)版本的jQuery并将其包含在您的项目中. 原因2: 使用其他库引起了 ...

  10. 浅谈linux IO csy 360技术 2021-01-18

    浅谈linux IO csy 360技术 2021-01-18