拼多多、蚂蚁、字节 2022 届 (大三) 后端研发暑期实习
农业末流 21,计算机专业)
--------------------------------拼多多
4.7 在线笔试,好像 4 道 a 出 2 道半
4.13 通知进入面试环节,填写应聘登记表
4.15 一面
4.20 二面
4.23 三面主管面
4.29 HR 面
5.10 应聘信息确认(感觉 offer 马上到)
5.12 OFFER LETTER(有 5 天的意向确认时间)
------ 4.15 一面 50min
感觉挺难,面试官全程严肃还时不时叹气(弄得我很慌 😂 😂 😂)。。。
自我介绍
简单介绍项目,怎么做的,为什么要做这个,用到了什么技术。
乐观锁、悲观锁、举例讲讲,CAS
异步同步、阻塞非阻塞,他们之间有联系吗,说说区别,再从内核的角度说说看(私下查了资料答错了)
synchronized,放在各个地方锁的是啥,一个 synchronized 静态方法,一个普通的 synchronized 方法,访问静态方法后还能访问普通方法吗,锁的对象是一样的吗。
synchronized 的底层实现,知道多少说多少,和 ReentrantLock 的区别
redis单线程为什么这么快(之前美团问过,但是还是有点记不清。。。)
。。。还有很多底层的问题记不起来了,一面问的都很底层基础。
求一个二叉树里的 2 个节点的距离,二叉树每个节点的值是唯一的。
当时写的是用递归的先序遍历方式去写,面试官说往这个方向想是对的,就继续卡了挺久,面试官提醒说可以吧走过的路径记录下来,
提醒到这差不多有思路了,就用栈去记录遍历的节点,还是递归先序遍历,当遍历到 2 个节点中的一个时当前的 栈轨迹就是那个节点的路径(从根节点开始算起的),最后比较这 2 个栈轨迹就行,类似最近公共祖先,比如找节点 4 和 5 的距离如果得出是[1,2,3,4]和[1,2,5] 那他们的距离就是 3,及 4->3->2->5.
--------4.20 二面 50min
一度以为一面能过的概率不大,结果过了还是比较惊喜。
二面面试官特别和善,心情很好,上来就活跃气氛,说我这里天气很好啊,在寝室吗。。。
自我介绍
问项目,问具体实现,怎么使用redis的,myqsql 有优化过吗,说说过程,登录流程,拦截器,jwt,2 级缓存,部署,docker,git,
都是简单的聊,没有深入,这些技术是怎么开始去学的,碰到问题怎么解决的。
问了个 ConcurrentHashMap
问了项目的实际使用情况,一个在商用一个没落地
问什么时候可以实习,能实习多久(我还以为结束了。。。)
继续问了几个底层:讲讲 volatile,JMM,垃圾回收过程,字节码角度解释 return i++,mysql 的事务原理;
为什么喜欢 java,怎么开始学的(感觉面试官特喜欢 java)
算法题,面试官吧函数啥的都码好了,例子也给我写了( 🤣,码子速度惊人)
一个字符串,找是否存在一对 AB-BA 或者一对 BA-AB, 重复的不算
直接遍历一遍吧 AB 和 BA 出现的数量记录下来,根据他们出现的次数分类讨论
(算法是可行的,复杂度 O(n),面试后发现有更好的方法,双指针 2 端往中间扫描(左边有 AB 则右边就找 BA 这种思路))
----------4.23 主管面 30min
面试官看着就像大佬( 🤐)
问项目,项目里哪里可以优化,第一个项目如果落地了,如何保证高可用,数据库主从,后端服务多开几个,怎么保证
前台访问的接口一定能找到后端服务,用一个网关,怎么保证网关高可用,。。。(不清楚了,下来想了下,nginx+keepalive 就可以
当时咋就想不起来泥。),引入了redis,redis挂了怎么办,系统还能正常运行但是很慢,所有redis异常都被捕获了,最终都会查询数据库,当时候人工维护。
怎么部署 https 的。https 的加密流程。
最近在看什么书,推荐下,并发编程的艺术,学到了什么,里面很多思想都和操作系统的联系起来了与学校的纯理论课相比更加形象(实践起来了那种,比如阻塞队列,cas,管程)
什么时候可以实习,有什么想问的
什么技术栈:dubbo,没学过,面试官说 SpringCloud 那一套也可以,消息队列是自研的,去学 RabbitMQ 就行,缓存用的 C++,
实习有新项目吗,看部门,有的有,有点就维护老项目就行。
-------------4.29HR 面 20min
pdd HR 小姐姐,期待薪资,项目(说功能就行),怎么学的,家庭情况,学业情况,等通知,一周能
-------------5.12
offer,base 上海,996 作息,包吃,有转正,总的面试体验都很不错
----------------------------------蚂蚁金服花呗部门
--------------2021-04-29 支付宝蚂蚁花呗 2 面 电话面试 20min
3 月底就已经一面了, 当时面试官十分满意, 第 2 天就拉我 2 面, 发现已经投了阿里其他部门了,
就去转流程卡了这么久才来安排 2 面....
2 面的面试官很忙, 原本晚上 78 点左右, 因为开会就调到晚上 10:30 安排(下班了还要面试, 很感激)
直接介绍项目(校园水站系统和奶茶店点餐系统外包)
问项目(负责的模块(全部是一个人做),为什么写水站, 水站项目的流程, 具体功能,
可以帮助送水员送水吗(每栋楼舍有实时叫水概览图), 奶茶项目的支付功能怎么实现的(微信支付),
把下单流程说下(选商品, 下订单, 微信统一下单预支付, 小程序调起收银台, 回调填入交易号,
账单回查, 商家自己负责配送))
项目用了哪些技术(SpringBoot, MySQL, Redis, JWT, Linux, Docker, uni-app, Vue)
为什么用 JWT, 作用, 怎么用的?
说下二叉树和 B 树的区别和各自优缺点?(没答好,B 树效率高且适合数据多的情况,节点二分查找,磁盘块读取,二叉树适合数据量少的直接全部加载到内存去读)
说下 Redis 的 2 中持久化的机制?(RDB 和 AOF) 各自优缺点?
Redis 为什么用单线程?(简单专一, 不用考虑并发不用锁, 高效无线程切换, 私下查了还有: 瓶颈在内存不在 CUP, IO 多路复用)
JMM 里堆里分代的原因?好处?
以后打算从事那个方向或者发展方向?
最近在学的技术(目前认知停留在微服务阶段)
说说微服务的理解?(将整个项目拆成不同个子项目(服务), 服务集群, 像是 RPC 调用那种, 没答好(服务注册发现, 网关, 熔断, 服务通信等))
微服务的优缺点?(提高并发, 模块化服务解耦, 编程复杂, 分布式事务)
最近有在面其他公司吗?(美团oc 半个月了 offer 还没下来,拼多多明天第 4 面 HR 面, 携程1 面挂了 5.8 有个复试, 最后表明自己真的很想去蚂蚁)
有什么问的?(什么部门的, 主要业务)
问题都不难, 阿里这边比较喜欢问项目,这个面试官更想听你的理解, 20 分钟就结束了, 算法也没问, 可能是大晚上了
--------------------------------字节
找的内推,没有笔试(之前投的笔试挂了)
内推人很给力 5.11 投的,当天就安排了一面时间。
----------------------5.11 上午一面 50min
面试官很年轻,问的都很基础底层
自我介绍
项目说了一点点,面试官说他们是c++/go 方向的,我是 java 到时候可能要转c++
InnoDB 的页机制
ACID,事务如何实现,redolog 很大怎么办
进程线程的区别,进程的切换过程
虚拟内存,为什么要有虚拟内存,进程的虚拟内存联系起来 (盲区。。。)
HasnMap 和 ConcurrentHashMap 的区别
红黑树有了解吗,聊聊 b 树和 b+树,b 树和二叉树比较下优缺点
内存可见性(我当时回答大致说每个线程对应一个 cpu,每个 cpu 有自己的 cache,cache 和主存之间通过总线缓存协议维持一致性,不知道对不对)
还有几个简单的基础底层
算法题:将一个句子的每个单词原地翻转,不难,但是面试官看着我一行一行敲完,敲完就把我的错误全部指出一遍跑通
提问,问完当场说下午安排 2 面。
(算法还好,运气好不难,面试官把控的很好,很多学过的操作系统那些都快忘了也会去引导你慢慢想起来)
-----------------------5.11 下午二面 40min
面试官全程半站着,可能坐着累了。
自我介绍,当我说到 java 时直接打断,说他们是 go 和c++,然后继续面试。。。
做道题吧!( 🤣)
算法:一个数组,有重复的数字,找 3 个和为 0 的数。
当时做了很久,调了很久,面试官也帮着找问题,用的比较麻烦的办法,最后还是没调通,下来自己找到问题了调通了,O(n^2),下来看了可以用双指针就很简单也是 O(n^2)
聊项目,聊了几个简单业务
面试官:随便问了哈( 🙃裂)。。。
tcp,udp,老八股
消息队列用过吗,RabbitMQ,为什么用它(面试官表示它以前很常用)
k-v 存储用过什么,redis,过期机制,rehash 是什么,redis的虚拟节点(这个不知道,下来也没查到,有知道的写评论区可以吗谢谢泥 😅)
数据库的主从原理,具体是怎么监听 binlog 日志的
能实习多久,什么时候可以来。这 2 天等 hr 通知。
--------------------------5.13 HR 面 10min
hr 是一个大四学姐,也是实习生,等结果(学姐说说 offer 审批)
--------*5.14 offer 24 入职
评论