BIGO(一二三面面经,已凉)
写在前面
一面 8月30日 16:30 时长50min
1. 自我介绍
2. Java的三大特性,并详细说一下三大特性,举例子最佳
3. Java类加载机制和运行机制(双亲委派,编译和解释并行)
4. 问有没有客户端项目经验(没有,但是没关系,接受0基础)
5. TCP协议和UDP协议的区别
6. 详述TCP协议的三次握手和四次挥手(各个标志位的含义),为什么四次,为什么有time_wait
7. TCP协议如何实现可靠传输
8. 详细说一下TCP协议的应答机制
9. 进程与线程的区别
10.Java的内存模型
11.详述GC机制:有哪些回收算法,如何判断是垃圾,垃圾回收器有哪些,如何分代,如何分配的内存等等
12.线程间的通信方式
13.synchronized的底层实现机制
14.锁的膨胀过程
15.volatile的作用,与synchronized的区别
16.浏览器输入一条链接后发生的事
17.手撕算法:堆排序 + 快排
18.反问:
技术栈是什么?答:巴拉巴拉
新人进去的培养流程是什么?答:巴拉巴拉
二面 9月7日 16:30 时长60min
1. 自我介绍
2. 看我没有客户端的项目经历,谈了一下
3. 说一下TCP/IP协议
4. 说一下五层协议,每层具体干什么
5. 五层协议的具体应用(没答出来)
6. 数据链路层这里是如何进行数据的交换的(最开始没有明白意思,后来面试官说就是问你数据链路层是怎么知道要发给谁的?)
7. TCP协议的三次握手(建议把详细的每条消息的标志都说清楚)
8. TCP的分片机制(直接崩掉)
9. DNS解析的过程
10.HTTP协议和HTTPS协议的区别
11.HTTPS的加密机制(建议要说得很全面,主要四个知识点:对称加密和非对称加密,数字签名和证书。从对称加密的缺点到非对称加密的缺点,然后引申出HTTPS使用的混合加密机制,以及简单的混合加密机制会出现的问题,再引出第三方的证书认证机构,补充说明有了CA的情况下为什么传输的安全性就能得到很好的保障了)
12.四道算法题(本地IDE编程,要运行,并通过简单的测试用例):
1. 给一个数字N,返回(0, N)区间内所有与7有关的数字(7的倍数,或者数字中带有7,或者各位数之和为7的倍数)
2. 反转链表
3. (不要求写出来)给定三个栈,其中两个是空栈,一个栈中有一系列有序的数,问如何只通过这三个栈把这个含有数据的栈中的所有数移动到另外一个栈中,并保证这个过程中所有栈内的数都是有序的,最后要求分析时间复杂度。(即汉诺塔问题)
4. (不要求写出来)如何用两个栈实现队列
13.反问:
结果什么时候出?答:等HR那边汇总排名后才知道
如果要学习客户端,有学习路线上的建议吗?答:巴拉巴拉了10分钟左右
三面 9月15日 10:30 时长65min
1. 自我介绍
2. 最近做过的项目是什么?
3. 你觉得自己哪些课程学得比较好?(计网和数据库)
4. 你知道数据库的哪些索引
5. 计网这边TCP和UDP你能说一下吗?
6. 你刚刚说了TCP建立连接的过程,那你有没有一个概念?TCP的建立的链接是什么样的一个模型,大致什么样子?(这个问题没怎么想过)
7. 自己由上一个问题扯了一堆,然后扯到socket?
8. 你刚刚说到socket,你用过socket编程吗?讲一下流程和编码?
9. 算法题:给一个字符串,输出最长的回文字符串
10.开放性题目:一个平面上,有几个不规则的图形,我们如何能够比较好地测量这些不规则图形的面积?
11.在过去遇到的困难有哪些?(不限制在项目中,过去的整个人生中)
12.反问:
评价一下这场面试:面试官(笑)答:这个问题推给你,你觉得你的表现如何?我们这场面试有哪些环节?每个环节你给自己打个分?然后你觉得我们各个环节考察的是什么呢?
面试结果什么时候出?答:不确定,由HR决定