去哪儿一面二面三面(已意向)
1、自我介绍
2、介绍项目
3、做过手机端的开发吗
4、用什么进行通信的,怎么设计的
5、怎么进行聊天的
6、多人聊天做过吗(音视频会议)
7、具体说一下消息的发送传输
8、有没有遇到消息丢失这种情况
9、有没有考虑过udp协议,为什么会选择TCP
10、聊天过程中,遇到消息中断的情况,怎么保证它的链接的
11、在聊天的过程中,如果连接发生中断了,我们可以采用一些机制,比如重连啊。怎么处理这个连接中断的问题(面试官说可以用短连接的方式去做?)
12、长连接、短连接了解吗
13、进程和线程有什么区别吗
14、什么时候会导致线程阻塞
15、怎么解决这个阻塞的问题,有什么方法。
16、sleep和wait有什么区别
17、wait怎么知道等待的资源到达了呢
18、你能说一下有哪些几种线程池,为什么会选择这种线程池吗(不同的线程池有不同的设计场景,你在什么场景下选择了这个线程池)
19、图片压缩是怎么做的,怎么读取图片的
20、如果读取的图片比较大怎么处理呢,你的内存会够用吗
21、算法:删除链表中重复的节点
22、你对移动端、客户端这一块了解不
23、为什么想做客户端开发
二面:(应该是个主管,笑嘻嘻的,虽然长得不和善,但是给人的感觉还是比较和善的)
1、 自我介绍
2、 做过什么东西
3、 有哪些长链的机制(长连接机制)
4、 套接字
5、 非阻塞的accept怎么做
6、 说一说常用的设计模式,软件开发的基本原则
7、 C++中的抽象类是怎么回事
8、 抽象类可以实例化吗?为什么?
9、 假设我定义了一个基类,里面定义了一abstract方法,那这个类是一个抽象类吗
10、 有一个base class,里面有一些abstract和interface方法,还有一些其他的方法,那么他算一个抽象类吗
11、 他可以实例化吗
12、 虚表是怎么回事,为什么要有虚表这个东西
13、 他为什么要设计虚表然后运行的时候去找虚函数的指针,它的作用是什么
14、 从面向对象来说的话,他是为了实现哪种东西呢
15、 Overload和override的区别
16、 说一下继承和组合
17、 给一个url,从客户端到服务端会经过哪些核心的链路。(贼细)
18、 对称加密和非对称加密哪个效率高一些,为什么
19、 为什么中间人能进行攻击,来窃取你的信息
20、 https的ssl加密,CA证书扣的很细。
21、 有一个数组,想要找第n大的数
22、 为什么用小顶堆,不用大顶堆
23、 时间复杂度是多少,最优时间复杂度是所少
24、 算法题:二分查找
25、 做乘除的话,可以用哪些方法
26、 为什么用位运算,他有哪些好处呢
27、 反问
1、 自我介绍
2、 介绍一下项目
3、 本科学校
4、 有没有参加过社团什么的
5、 说一下做了什么
6、 在这个过程中有没有遇到什么困难
7、 你是怎么和学校进行沟通的
8、 为什么选择客户端
9、 忘了