拼多多 服务端开发
一面 5.20
项目
- 在项目中做了什么工作
- 项目的分层架构
- 数据是如何写入的(需要更新MySQL、ES、Redis)
- 数据一致性如何保证(MySQL、ES、Redis)
- 如何实现延时双删的、延时双删的间隔时间
手撕
- 如何判断一个字符串是否是IPv4的地址
八股
- 异常体系
- Spring和SpringBoot的区别
- CGLib和Spring原生的代理的区别(项目中用到了)
- 用到了SpringBoot的哪些组件
科研
- 主要做的工作是什么
二面 5.27
手撕
- 先给了一道多线程算一个数组和的问题,
- 我说不记得多线程怎么写了,然后换了一题
- 给了一个数组,求其中的最长的山峰子数字的长度。
- 山峰子数组指的是一个先单调递增再单调递减的一个数组,且这个子数组需要是原数组中连续的部分。
- dpq我写了三十分钟....
八股
直接从上面的代码中引出来
- 创建一个数组在堆中是如何体现的
- Java的垃圾回收,这个数组什么时候可能会被回收
- 上面的多线程求和题,如何控制每个线程不冲突,最后对每个线程的值的加和怎么算
- 如何确保线程都执行完了、如何查看线程的执行结果、如何等待线程结束
项目
- 各种数据存储之间如何保证数据的一致性,ES、Redis、MySQL
- 数据量级的大小
- 数据库分库的sharding_key是如何获得的
- 为什么需要用到ES,直接用MySQL不行吗
- 如何做服务的迁移,从老的一套转到新的一套
- 服务还有什么难点
- Redis中失败的线程是否会重试
反问环节
好像反问了又好像没有,感觉一个问题都没有回答(X
已约主管面 5.31
自己放弃了,不想去pxx,就不面了。