在牛客获得了很多的帮助,从各类面经到算法总结,成功上岸了,也来分享下自己的经历,希望能给更多的人一点帮助
Update:后续如果还回忆起来忘了的问题的话,我会同步更新
常规项目和闲聊就不赘述了
时间跨度太长,具体问题只记得大概了, 记不清具体每面是啥了,简单描述一下
计算机网络:
从url输入到最后访问的过程
TCP/UDP区别
TCP为什么可靠,怎么实现可靠的
url为什么要编码
OSI参考模型以及每层作用和大概的工作方式
三次握手
四次挥手
Time wait/Close wait
Http/Https区别
GET/POST区别
拥塞控制的四种方式
粘包和拆包
Https加密过程
DNS查询过程
操作系统:
进程和线程的区别
进程和程序的区别
进程的通信方式
线程的通信方式
死锁的发生原因以及如何避免死锁
内存调度
Java语言特性:(因为简历上只写了简单了解Java,Java相关的就问的不多)
Java多线程的实现方式
Java和C++的区别
C++语言特性:
C++怎么实现多态的
虚函数表保存的是什么
内存对齐的原因
改变默认内存对齐长度的指令
菱形继承的相关问题
各类指针的分辨和区别(常量指针、指针常量、函数指针等)
空类大小以及为什么
C和C++的区别
map和set的底层实现及区别
红黑树的结构以及如何调整树结构的
函数指针的优势
编译的过程
怎么链接的
数据库:
数据库索引的结构以及为什么
索引的优劣势
索引失效可能会导致什么
索引为什么失效
事务是什么
锁的种类和区别
Linux相关:
各类Linux指令的附加操作含义(例如:ls -h)
智力题:
不均匀的两段绳子,每段能燃烧一小时,如何确定15分钟
算法
一面(1.5h):
链表奇升偶降
二面(1h):
合并有序数组
路径总和
合并区间
三面(1h):
计算C/C++文件中的注释个数,以及忽略注释
包含 //, /* * /, /* /**/等
全部评论
(6) 回帖