时间:1013
一面:基础面 70min
语言:
1.C++语言的特点?(面向对象:封装、继承、多态)
2.什么是面向对象?
3.虚函数和虚继承是怎么实现?
4.虚函数表里存放的内容是什么时候写进去的?(编译阶段)
5.单例模式的构造函数?单例模式的创建过程?如何保证线程安全?
6.C++中的智能指针?三种指针解决的问题以及区别?
7.weak_ptr如何解决shared_ptr的循环引用问题?
8.new和malloc之间有什么区别?new申请内存空间的时候为什么不需要类型转化,底层做了些什么事情呢?(new的作用:实例化一个对象。申请内存空间,然后调用相关的构造函数)
9.C++内存分为哪几块?有什么作用?
10.C++中函数指针和指针函数的区别?
操作系统:
11.进程、线程、协程是什么?区别是什么?
12.协程是轻量级的线程,轻量级表现在哪里?
协程是程序员自己控制的,进程线程有上下文切换,协程没有内核态的概念,是用户态的
13.进程间通信的方式有哪些?
14.IO多路复用有哪几种方式?区别?select是用数组来实现的没办法扩大,poll用链表来实现。epoll实现了回掉,没有shang'xi
网络:
15.tcp和udp的区别?
16.tcp三次握手建立连接的过程?三次握手过程通信双方各自的状态?
17.从实用的角度来讲,三次握手的真实目的?(从硬件的角度来看,每一次握手的意义?)
客户端A给服务端B发送了一个请求,此时A并不知道自己的发送设备是好的还是坏的。如果B收到了,说明客户端A的发送端硬件设备是没有问题的,B接收端的硬件设备也是好的,于是进行第二次握手。A收到后知道B的发送端设备是好的,A的接收设备是没有问题的
18.网络的七层模型?每一层的协议?
19.http和https的区别?
20.tcp是面向字节流的,出数据可靠的,也有时序性的问题;UDP是面向高通量,不一定要求对方收到信息是准确的这样一个场景。电话沟通是用什么协议?(TCP)什么情况下用TCP协议呢?(邮件的发送协议)
算法:
21.如何判断一个链表有没有环?
22.B树和B+树的特点以及应用场景?
23.希尔排序算法思想?
24.hashmap实现的思路和方法(类似于STL中的unordered_map)
25.哈希冲突如何解决?
场景:
26.硬盘上有10G的数据,可能会有重复,如何找出有都少个数据是重复的?
用bitmap(用于对大量整型数据去重和查询操作),一个位代表一个数据,一个一个的读数据,如果该位已经有数据了,说明当前是重复的数据,count+1就可以
时间:1015
二面:20min
主要问项目,针对项目中的一些点进行提问。
时间:1019
hr面 10min
1.自我介绍
2.对工作的期望
3.为什么投递该岗位?
4.期望薪资
5.工作地点
6.家庭情况
7.个人爱好
8.收获最大的经历
全部评论
(3) 回帖