字节后端-实习生-商务化
11/12 14点 一面:
- tcp四次和三次的各个作用,Why三次,Why四次
- tcp长连接,短连接
- 如何拆包、打包数据报
- 什么是粘包?如何解决
- 流量控制
- 拥塞窗口
- 简述JAVA的锁
- Synchronized是悲观锁还是乐观锁
- java的内存管理
- 只有栈行不行
- 栈堆优缺点
- 堆的内部都有什么
- 线程、进程
- 为什么进程上下文切换开销大
- 虚拟空间如何优化进程上下文切换:不知道
- 伪代码写个死锁
- 三种方法实现队列
- 数组和链表实现队列的方式:头删尾插链表、双指针数组
- 输出最大交集(不许用set)
- 一亿数据如何优化查询:不清楚随便答了一个tree和heap
- 算法题:对一个正整数求平方根 要求:精度为0.00001 (我的思路:二分)
11/15 16点 二面
- ping的原理?
- 实现ping是tcp还是udp?
- tcp的四次挥手为什么要两次time wait?
- udp如何实现tcp的可靠传输?
- HashMap扩容、hash算法
- 为什么HashMap头插会形成环?(我答:一定会有环,原理可能是next指针的问题,有点含糊)
- HashMap先Resize还是先ReHash?
- 如果HashMap的链表加了锁,能不能是线程安全的?(我答:可能resize的时候,copy了两份)
- Neo4j的数据结构?
- 让你用一个数据结构实现Neo4j的图形化数据库?(我答:TREE或者HEAP)
- Neo4j的两个主要元素?
- RabbitMq怎么实现广播(我答:Fanout)
- 如何实现Fanout,要保证时效性?(我答:交换机持有一份,每个队列过来主动copy一份)
- 如何通知队列,交换机里有消息?
- 算法题:给一个前序遍历,输出他是否合法(我的思路:使用DFS,当左右都是NULL,设置现在的节点也是NULL,这样最后应该返回的是一个NULL,否则为false)
11/18 15点 三面
- 自我介绍
- 项目中的难点?
- 算法题:最小回文数(70%AC,没有考虑遇到9的情况,所以fail了30%)
11/18 20点 HR面
- 待遇薪资
- 有面试其他公司吗?(腾讯)
- 你的三面面评都还不错,打算实习多久呢?想转正吗?
- 反问:待遇、裁员、时间