阿里
偏好:Java、JVM、Spring、MySQL、OS、网络、设计模式
盒马 一面 03.17
- 进程与线程的区别
- PCB的结构
- 分页和分段的区别
- 怎么避免死锁(死锁预防)
- 处理死锁的四种方法
- UDP如何借鉴TCP的性质实现一个TUDP?1.握手;2.超时重传(SEQ、ACK)
- 快排最糟糕的情况
- 红黑树的五大特征
- JVM 如何判断对象是否存活(可达性分析)
- 垃圾回收算法
- hashtable与HashMap
- HashMap 1.8 前后区别
- ConcurrentHashMap 1.8 前后区别
- 讲两个项目
- 代码1:二叉树镜像
- 代码2:“hello nju” 变 “nju hello”,辅助空间O1
蚂蚁 一面 03.20
- 兴趣
- 后端有钻研过什么吗?安全?机器学习?大数据?算法?云计算?
- BAT 如何抗住大流量?有关注过吗?常见优化?
- 负载均衡的原理
- nginx 可以做几层的负载均衡?七层?四层?
- 四层和七层的负载均衡的区别?
- nginx 单点失效怎么办?
- sql 与 nosql 区别
- 关系型数据库的优点
- 数据库隔离级别、传播机制,用来解决什么问题
- 不同的网站会使用怎样的隔离级别?
- Web 项目、移动端项目
- Taro 和 RN 技术选型原因
- Vue 是什么时候开始使用的
- 有看过 Vue 源码
- 对算法、云计算有了解吗
- OJ、ACM 参加过吗
- 树状数组有没有听过
- docker、k8s 有研究过吗
- 对自己未来的规划?金融银行互联网?前端后端?
- 保研考研
腾讯
偏好:算法、网络、OS、分布式、设计模式、mysql、Linux
CSIG 一面 03.21
- 自我介绍
- 介绍项目
- HTTPS 与 HTTP
- TCP 如何保证可靠性
- 拥塞控制的算法
- 滑动窗口
- 单链表快速找中间节点
- 代码1:两个字符串的编辑距离
- 代码2:实现最大堆
CSIG 一面 04.11
- 项目(从技术角度来分析难点和设计巧妙的点)
- 选择 Celery 原因
- docker 网络模式
- 除了前端轮询,是否有更好的方式?(WebSocket)
- 从输入域名到返回(DHCP、RAP、DNS、HTTP握手、HTTP请求)
- HTTP 为什么有 TIME_WAIT 状态
- HTTPS 四次握手
- 中间人攻击
- 对称加密、非对称加密的对比
- HashMap 冲突了如何解决(链地址法等)那么如何保证仍然是O1的?(双散列法)
- 进程通信的方式
- 对共享内存和消息队列,一个进程被kill了,那他们还存在吗?(猜存在)
- fork子进程时,从父进程继承了什么?(父进程的代码段、数据段、堆栈段)
- fork了一个子进程后,内存蹭蹭往上涨原因 ?(fork实际是写时复制,如果在fork后对子进程进行修改或调用exec方法,就会导致大量内存消耗)
- 算法题:n级楼梯,一次1步或2步
- 一致性哈希
- 同一个来源的请求达到一个集群上,通过各种负载均衡算法后,如何保证集群数据的一致性,这样下次打到另一个机器上时仍然是有数据的?(一致性要求不高的场景可以使用 Session Server,高的话可以通过一致性算法如 Paxo、Raft 等)
- raft 日志压缩是怎么做的
- raft 集群配置更改是怎么做的
被锁简历锁了11天吧。。然后约时间我说我考试下周吧,结果说15天简历就释放了,那就只能周六了。面试官广普有点点好笑哈哈哈哈,整体体验很好,最后我问对实习生的培养怎么样,回答说部门这方便很不错,几个进来不如我的后来成长速度很快,在公司都算前列。(于是我知道我过了哈哈哈哈哈)算法题看我会写就说算了不写了,问点别的。。于是我主动扯自己的另外一个项目,想拉一下,结果不感兴趣。。。
CSIG 二面 04.15
- JWT 的优缺点
- 分布式事务协议
字节跳动
偏好:算法、Java、数据库、Linux、项目
一面 04.14
算法题
-
两数和为固定值的对,如{2,7,4,9,11},target13,有{1,11}和{4,9}
-
合并 k 个有序数组
基础:
- 进程间通信方式
- synchronized和volitale
- synchronized 对象锁、类锁
二面 04.14
算法题
- 二叉树zigzag输出
基础问题
- 输入一个url的访问过程
- HTTPS 获取私钥过程的随机数被别人获取了会怎样?(其实是通过公钥加密过的,截获也无所谓)
- 为什么不直接使用TCP
- 讲下数据库事务
- 数据库宕机了怎么办,正在执行的事务会怎样
- 快照也没保存全呢?
三面 04.26
算法题
-
甲赢一局的概略为p,7局4胜的概率为多少?
最开始给了数学解法 p^4 * (1-p)^0 + p^4 + (1-p)^1 * C(4,1) + p^4 + (1-p)^2 * C(5,2) + p^4 + (1-p)^3 * C(6,3) 后来说动规解法呢? dp[i][j] 表示在第 i 局赢了 j 局的概率,状态转移方程为 1. dp[i][j] += dp[i-1][j-1] * p // 这一局赢 2. if j != N: dp[i][j] += dp[i-1][j] * (1-p) // j 不为 N 时,这一局可以输 初始状态为 1. dp[0][j] = 0 2. dp[1][0] = 1-p 3. dp[1][1] = p
基础题
- 项目
- 项目对你的成长
- 项目的难点
- 自己是怎么学习的
微软
偏好:算法
一面 04.07
算法题
- 格雷数(00, 01, 10,11)
- 求一个 LIS 序列
基础:
- vue数据双向绑定的原理
- 反射是什么
二面 04.13
- 连续数组的最大和(有负数的情况)
- round 不是四舍五入,而是看前一位减小误差,实现一个round函数。
美团
偏好:Java、并发、网络、项目
一面 04.14
- 每天300万数据量,预期保存3年,需要怎么保存到数据库?
- 先从业务上考虑,是不是所有的字段都是必须的?减小业务上的数据量
- 划分存储,不是所有数据都需要存储到数据库(如果需要的量大可以考虑es等)
- 分模块存储(热点数据与不经常使用的分开)
- 最后到存储这一步再思考 MySQL 索引
- 什么时候索引不能被使用?(LIKE、WHERE 列是表达式)
- 内部类的分类及特点
- 普通内部类
- 局部内部类
- 静态内部类
- 隐式引用
二面 04.15
-
微服务熔断降级
-
一个数最少可以有几个平方数组成。最开始没思路,后来面试官提示了 dp。想到类似硬币的解法。
例1:6 = 1 + 1 + 4,结果为 3 例2:11 = 4 + 9,结果为 2
网易
偏好:微服务、Docker、RPC、Java
一面 04.16
- 项目
- 阿里中间件的比赛
- 为什么需要双亲委派机制
Shopee
偏好:网络、OS、数据库
一面 04.24
-
HTTPS 第一次 Hello 是基于什么协议?(TCP)
-
MyISAM 与 InnoDB 性能比较及原因
-
MySQL 写一条数据的具体过程
-
非对称计算慢的原因(计算多,那为什么计算多)
-
Double ACK
-
pid 是怎么生成的(子进程就是父进程+1啊,面试官:那你见得不够多。后来查了下是遍历可分配的PID范围,找到下一个可用的)
-
JVM fork 子进程的哪些部分
-
堆栈段指的到底是什么(栈)
-
Linux fork 写时复制
-
代码题:找到所有左边比它小、右边比它大的数字,时间复杂度要求O(n)
对当前位置 i,用数组保存 [0, i) 的最大值,(i, n-1] 的最小值,然后检查当前值是否大于左边的最大值,小于右边的最小值。