滴滴后台开发一面+二面
这个属于补招环节,应该是前面大佬释放的少数名额,滴滴实习转正和提前批基本就已经把所有的岗都招满了。我是正式批第一波还是第二波笔试的记不清了(笔试好像只有最后一个题过了60%多,其它全A)
(二面面试官对我面试表现反映还是挺好的,原本能过的,奈何就一两个名额还搞了一波补招,还是投的太晚了。 )
一面
- 自我介绍
- Java几种基本数据类型
- Java每种类型占多少字节
- int的上限是多少,32位和64位操作系统中int各占长度是多少
- 操作系统中符号是怎么表示的
- 重写和重载
- 封装、继承、多态,及分别的应用
- 设计模式有哪几大部分,简单工厂解释+手写,简单工厂中存在的问题(反射去解决)
- 网络分层协议有哪些
- 多进程编程和多线程编程的区别
- 进程分哪几部分,进程堆和进程栈,c中通过malloc创建的对象放在堆还是栈
- HTTP请求都有哪些,GET和POST区别
- 请求头中用哪个表示请求体的大小
- 聚簇索引,为什么要用聚簇索引
- 并发和并行
- Java中锁及原理
- 中间还问了好多,有点记不清了。。。
- 有100G数据,内存假设只有1G,如何排序(不用外排的思想,如果自己再设计一种)
二面
二面前面一直在问项目,后面问了基础+手撕代码
- 以往一个项目中某个模块介绍(数据库设计,功能实现等)
- 登录权限表结构如何设计的,权限数据结构怎么定义的,怎么存储的,前端怎么控制映射的,等等等(要把这个模块的每一个方面都讲全)
- cookie,session,JWT区别异同,session全局共享怎么做
- JWT认证授权过程,为什么要用到私钥,jwtToken中为什么要带signature,公钥怎么定义的
- Ajax请求头怎么设置
- HTTP请求方法有哪些,GET和POST区别
- 请求到tomcat处理的流程(分别从网络和tomcat方面回答)
- TCP滑动窗口原理,为什么要分组转发,发送和接收缓冲队列,优化
- SYN攻击,如何预防
- crsf攻击,如何解决
- MQ应用场景,能解决什么问题,RabbitMQ有哪些组件哪些模式
- Redis分布式怎么处理,哨兵模式
- 缓存击穿和缓存雪崩区别
- 之前项目用到什么设计模式,什么索引
- 手写工厂模式
- 聚簇索引页分裂问题,是不是一定要用主键索引
- 从磁盘角度回答页分裂问题
- 手撕代码1:归并排序
- 手撕代码2:二维背包问题
- 反问(最后面试官问php和go考不考虑,我说后者可以,不知是不是他们内部在那两方面缺口比较大)
求一求了,希望能有个好消息,许愿三面,加油加油