一 自我介绍二 面试情况三 相关知识点汇总1 c/c++相关2 计算机网络3 数据结构相关4 数据库相关5 操作系统6 Linux基础知识及应用编程(后台必备!)7 大数问题8 手撕算法(递归非递归)9 针对项目相关10 场景题11 架构/分布式/中间件相关12 总结 不走丢,先关注!
' T7 x; j3 c, r# E/ \3 _ 一、自我介绍本人小硕,秋招期间参加了不少安全类相关公司(深信服,绿盟等),另外参加了京东,小米,滴滴等互联网公司面试,同时也面试了几个研究所和一个银行,下面总结下秋招相关情况。 二、面试情况公司名称 面试岗位 面试情况 / f0 C7 B4 m# c' \$ \% Q; h
小米Linux内核开发三面!挂; |1 \# f; ?; l( P' w( t
深信服c/c++开发四面 拿到offer8 i! O1 F+ n2 C' O
bigoc/c++开发四面 拿到口头offer1 `: N: R u8 A. j7 r
滴滴网络研发工程师三面 挂场景
3 _' _- M$ _) J, S1 A人大金仓c语言开发工程师三面 拿offer: G7 I- h5 C8 L
京东c++研发工程师二面!挂( _/ a, [9 p' w0 J9 ?* o* I
绿盟科技防火墙开发工程师没有去参加二面
- \- [8 ]; f/ D9 j F9 J5 ]浦发软件开发工程师拿到offer8 g' _! t, v. B+ h t$ ^( w9 v
中国网安(30所)c防火墙开发拿到offer; _, W) n. t8 c4 v
映客直播后台开发工程师(go)二面挂(印象很深刻). i( X2 M% x" p0 A+ M- y1 q( ]+ |
鼎桥(网上怎么变成了华为鼎桥。。)c/c++软件开发拿到offer这是小蓝整理的Linux后台开发面试高频题目(除了语言部分,其他部分差别应该不大),并提供相关知识的书籍或视频资源。 三 相关知识点汇总1、c/c++相关c++虚函数原理 智能指针 c语言如何实现c++对象以及私有成员 c++多态实现 new和malloc的区别以及底层实现原理 STL中的vector怎么扩容 虚函数指针的初始化过程 c++11原子变量介绍 c++11特性有哪些,说用过的 怎么理解重载与重写 怎么理解c++中的static关键字 vector和list 的区别 c++的内存分配 map与set的底层实现 类静态变量的初始化 析构函数可以是虚函数?为什么 深拷贝与浅拷贝 指针常量,常量指针的区别 ! a* I# E$ N, Y, A0 y7 k
c语言语法推荐书籍: 《c专家编程》《c与指针》 c++语言语言推荐书籍:《c++ primer》《effect c++》 c++语言stl底层原理:《STL源码剖析》 2、计算机网络tcp/ip相关推荐书籍:《tcp/详解:1》 熟悉使用wireshark捕包工具,加深印象可以使用python的一个库,scapy/dpkt. 3、数据结构相关hash处理冲突的方法 二分查找及其变种 数组与链表的区别 redis数据结构用过哪些,了解跳表? 红黑树比平衡二叉树有哪些优点 二叉树,b+树,hash,二叉查找树区别 说说红黑树的特性 各种树,排序的时间复杂度 数据库索引,事务,事务级别 不考虑事务的隔离性会出现什么问题 事务隔离级别 索引的类型 AC自动机时间复杂度
$ e" b' o* p7 b7 z8 F4 s
数据结构书籍《大话数据结构》 极客时间王大佬/谭大佬专栏 4、数据库相关mysql书籍推荐:《mysql必知必会》,《高性能Mysql》,《mysql45讲》 5、操作系统进程与线程的区别 多进程与多线程区别,应用场景 volatile和原子变量的区别 proc文件系统 自旋锁与普通锁的区别 虚拟内存 进程的内存分布 栈内存为什么由系统自动分配和释放 守护进程如何创建 进程间的通信方式及其区别,应用场景 死锁条件和解除 进程调度方式 对编译连接的理解 共享内存实现原理 僵尸进程是什么,如何处理 自旋锁在单cpu与多cpu下的使用 用户态与内核态 {9 E; i. l! k8 @7 m! g" ~5 V& I
操作系统推荐书籍:《深入理解操作系统》,《Linux内核设计与实现》 6、Linux基础知识及应用编程(后台必备!)如何查看进程打开的文件 介绍下nm与ldd命令 shell命令查内存,端口 ,io访问量,读写速率 awk grep具体应用 硬链接与软连接,目录可不可以用硬链接 常见命令netstat iptable tcpdump top makefile介绍下(cmake介绍下) gdb查看堆栈中所有遍历 gdb查看shared_ptr 指向的内容gdb如何调试多进程多线程 g++和gcc编译出来有什么区别 死锁怎么调试 core文件中是什么,gdb调试core文件 如何读取一个10G文件,cat一个10g文件会发生什么
' E: W3 S4 I8 f% z k
Linux基础命令推荐书籍:《Linux就该这么学》 Linux应用编程推荐书籍:《后台开发核心技术与应用实践》《Linux多线程服务端编程》《高性能Linux服务器编程》 《linux环境编程:从应用到内核》《unix高级环境编程》 补充资料:gdb手册和makefile详解 7、大数问题有200亿qq,但实际只有25亿用户,找到重复的qq 25亿qq占用内存多大 1-100万,计算找出所有的质数(计算密集型任务),用单线程与多线程怎么处理 1个G的文件写程序,从A机器发送到B机器,怎么发? 100G的文本,每行80k还是80字符,提示用多个机器,多进程,多线程,求出重复最多的行。一个机器内存8G,计算每个机器大概分多少?能读取100G的文本吗?找重复率前十的文本 三个有序的序列,查找公共的部分,第一次我说用哈希表,他说序列太大,空间复杂度要低点,我说了二分查找,他问三个序列查找的顺序和时间复杂度。(时间复杂度为N*logN *logN) 100WURL,如何存储 10台服务器,100w用户,如何进行负载均衡,如何有个服务器挂掉了咋办 10000个数据查找最小的100个?时间复杂度? 场景题:QQ的服务器会保存登录用户的QQ号,只要有登录,文件里面就会有记录,现在需要统计哪些QQ号登录过,怎么做?(先说了分治用小文件,他说除了这个了,我说bit数组,他就问需要多大内存?) 4 _7 Q+ z. S1 F7 s [7 v. k
大数问题通常的套路是hash,分治,布隆,bitmap,如果推荐的话还是上面数据结构相关资料.当然如果能了解下比如hdfs文件系统,mapreduce,spark/flink流式计算最佳哈 8、手撕算法(递归非递归)链表有无环判断 实现一个单例模式 给一个字符串判断单词数 开方算法 青蛙跳台阶 常用排序(快排和归并要写吐) 反转链表 两个链表,寻找公共节点 查找字符串中不重复的最长子串 LRU 手写求树的深度的代码 手写生产者消费者 编程实现string类 两个数组A,B,A有的B都有,求B-A; 输入一个字符串,输出它的全排列 统计完全二叉树多少个节点 memcpy实现 0 u3 x# B: n/ u* b8 U" O3 o$ P* \) Z
算法学习书籍推荐《剑指offer》,建议三遍哈。 leetcode分专栏练习几题,不在多,在于精。 9、针对项目相关最好是自己做过的项目,即时不是也需要弄明白其架构,为什么这么做,有什么优点,什么优化方案? 10、场景题11、架构/分布式/中间件相关推荐书籍:《redis设计与实现》《从0开始学架构》《docker入门到实践》《大型网站技术架构-核心原理与案例分析》 12、总结以上是技术面试中秋招常遇到的相关题目,希望对大家有帮助。
; H0 L, Q$ Q1 X9 |4 ?5 t2 d |