22提前批-新加坡Shopee后端一面+二面凉经
一面 - 07.01
总结
时长1h+
面试体验很好,面试官都有在引导。
之前准备的大都是数据库、Java容器并发等八股文的内容,但是没有想到最后几乎没有用上,有点突然,觉得自己并没有回答好。
问的问题都是基于场景设计题来的,没有项目相关的技术问题。
但是还是没想到过了。
希望二面顺利。
问题
- 项目介绍,有什么难点/困难?
- 设置user和product的类结构,实现user登陆场景和买卖场景下所需要的字段名称和类型。
- 多个user同时注册,用一样的用户名称,如何保证只会创建一条记录?
- 注册时,password的传输和加密方式?
- 登陆的时候,输入用户名和密码,点击登陆会发生什么事情?后端的处理?
- Session和Cookie
- Session id如何产生?
- 登陆成功后,后端向前端传递的数据内容?
- BigDemical的实现原理
- sql注入
- csrf和预防方式
- 登陆时,用户信息的获取和校验?
- 如何能加速信息的获取?
- 缓存对于登陆多次过的用户有效,如果是没有登陆过呢?
算法
- 算法1:get max spent category(product属性) by userId(根据场景设计题实现)
- 算法2:对于输入的字符串处理,添加数字对应数量的括号并输出,并且注意层级。
- 样例a: 021 -> 0((2)1)
- 样例b: 312 -> (((3))1(2))
- 样例c: 0000 -> 0000
- 样例d: 101 -> (1)0(1)
- 样例e: 111000 -> (111)000
- 样例f: 1 -> (1)
- 样例g: 221 -> ((22)1)
二面 - 07.06
总结
时长不到50mins。
主要问的是项目,问的很详细。面试体验还是依旧的好。
没有算法题,也没有反问的阶段。
几天后查询进度发现暂时不匹配,凉了。
问题
- 介绍一个你自己的项目(项目描述,使用的技术,结果)
- 项目为什么要使用这个技术?
- Dubbo, RabbitMQ, Docker, K8s, Redis等
- 介绍下Dubbo
- 问项目的细节,比如数据的来源,和其他平台的对接,是否为分布式服务,负载均衡,项目的部署等等
- 项目为什么要使用这个技术?
- 问另外一个rpc的项目
- 序列化协议的对比和介绍
- Nacos的介绍
- 负载均衡算法的实现(和Nacos相关)
- 注册中心的作用
- ...
- 平时使用过的设计模式?
- Java和Python实现设计模式的时候,如单例模式,有什么区别?
- 编码题:写一个双重校验锁的单例模式
- 为什么要使用关键字volatile?
- 去除volatile的后果?
- 设计题:
- 设计数据库表格字段和简单的sql,能够实现展示数据和分页查询。
- 设计一种分页查询缓存方案,给出具体的key和value的样例。
- 询问了上一次面试中有什么没有回答好的地方,然后又问了一次