一. 叮咚买菜

1. 一面

跳槽的第一面,问的比较简单,当时也没有记录面试过程中的问题

2. 二面

叮咚买菜公司现场面,面试官面试是跳跃性问的,没有交互的过程,问一个问题,我回答后,没有任何反应,不确定回答的对不对,他就是机械性的回应:嗯,那我们再来下一个问题,,,并且问的问题偏向实战经验。

  • 自己实现一个线程池
  • 大量网络timeout怎么排查
  • 发版导致cpu上涨怎么排查
  • 数据库组合索引a= and b between () and c哪些用到了索引
  • 把数据库大量数据同步到redis,怎么快速导入
  • 从数据库分页取出1000数据导入Excel文件,发现有重复数据,怎么排查
  • update一条数据,会命中什么锁,表锁,行锁(使用索引情况),范围更新使用间隙锁
  • 三方包提供一个接口,里面有多种实现,想要调用这个接口之前进行参数校验,但不想在各个调用点修改,怎么实现
  • dubbo接口调用逻辑
  • 死锁条件,如果避免死锁

二. B站

B站现场面试,一下午三轮技术面试。每一轮面试有侧重点,一轮侧重Java基础知识,二面侧重Java开发常用中间件的的底层原理,三面侧重项目面,就是探讨项目。总的来说,一面基础面问的都比较偏简单,不够深入,三轮面试,只要项目是你真的自己做过,介绍项目完全没啥问题;只是二面我准备不充分,dubbo和kafka的底层实现都没有去深入了解,所以一问三不知,气死了。

1. 一面

  • 手动实现多线程实现打印a b c
  • jvm辣鸡回收算法
  • 算法:链表判环,两数之和

2. 二面

  • 算法:找到元素组成的数字个数为偶数的元素
  • dubbo服务注册发现的实现原理
  • springboot与spring的区别,怎么实现自动化配置的
  • spring aop实现
  • Kafka的具体实现,为什么这么快
  • cas具体怎么实现的

3. 三面

  • 项目面,主要做介绍和实现,没有问基础
  • 面试官挺好的,聊我有没有偏执于特定业务块,想不想做基础架构
  • 为什么辞职
  • 什么时候入职,有投其他公司,或者收到其他公司offer吗? 刚开始投递,
  • 薪资结构,期待薪资
  • 有什么想问他的
  • 一两个星期内反馈面试结果

三. 携程

boss直聘上投递的简历,一开始hr联系我现场面,我经历过前面现场面的经历,感觉因为面试是个未知数,现场面的话如果面试表现不好来回很浪费时间,我就说能不能一面先经过电话面,如果我表现还可以再现场面?hr同意了。2021-01-22 14:00电话面试,面试完,马上hr约了我现场面试的时间,2021-01-29现场面试。

1. 一面

项目 上来直接问大概多大流量,怎么处理这么大的流量的,有哪些优化?

mq 保证一定会被消费、保证只消费一次、顺序性消费

多线程 怎么创建线程池的? new ThreadPoolExecutor(),指定核心线程数等参数。用过threadLocal吗?没有用过,但知道一些,然后就没了???直接换问题了

jvm gc的过程,从判定对象是否需要回收到gc分代回收算法,直接打断我继续说下去的欲望了,转问数据库的问题了。

数据库 索引结构,主键为什么用分布式id

有什么想问他的?技术栈,这个岗位主要是做哪块业务的。

总结:问的比较浅显分散,面试官不知道是没啥经验还是不打算招人,竟然结束的时候,竟然连面试结果多久通知都没有说,就直接结束了。

2. 二面

  • redis分布式锁怎么实现的?存在哪些什么问题?怎么实现可重入锁
  • redis:了解redis的数据结构吗?我只看过字符串的底层数据结构,为什么使用两种不同的编码方式?zset的实现清楚吗?跳表的增删改查的时间复杂度?为什么不用红黑树而是用跳表?RDB与AOF有了解吗?当AOF文件发生压缩时,主线程正常处理命令请求,新的命令怎么发送到aof的?
  • 分布式的id生成方式有哪些,美团leaf算法,雪花算法实现,如果遇到时钟回传会有什么问题?怎么解决?这个不清楚,提示说美团Leaf算法有对应的解决方案
  • AQS了解吗
  • 内存满了怎么排查
  • kafka怎么做到大吞吐量的?刚看的,哈哈哈,顺序写,pageCache,零拷贝
  • 有什么想问他的?技术栈怎么样的?怎么是负责哪块业务的

3. 三面

老大首先看了一下我简历,说我是拼多多的,你能走掉吗?网上不是说hr陪同入职吗?我,,,我就说,网上说的只是少数比较偏激的情况,双方都关系僵硬了,正常还是可以走的。

  • 数据库索引调优怎么样做的?
  • 优先级退款,为什么不直接使用jdk自带的priorityBlockingQueue而是使用minMaxPriorityQueue?
  • 实习时做的库存并发控制怎么实现的?

单机模式下,直接通过给事务方法加了synchronize的悲观锁,但发现这种方式并发度太低,所以优化了一次,给数据库添加一个version版本号字段,通过乐观锁实现并发安全。分布式系统下面,因为竞争比较大,乐观锁会导致大量的关锁失败进行重试,浪费数据库的性能,所以改造成了,通过redis实现分布式锁,保证串行更新数据。

  • 其他问题好像都是闲聊了?

四. 得物

  • 自我介绍:优化自我介绍方式,补充项目介绍,退款服务指责:申请退款时,计算逆向资产的组成金额,逆向资产目前只代表现金和优惠券。
  • mybatis的接口怎么调用的;
  • bean的生命周期,代理类的生成,FactoryBean的使用
  • dubbo接口调用过程
  • redis使用场景 和 数据结构
  • 数据库索引的理解
  • reentranceLock的实现和condition的使用

一面后就没有后续了,过了一个星期左右,然后另外一个得物技术官从 boss 直聘上联系我,问我对他们的岗位有没有兴趣?我说我已经参与了你们的面试,但目前还没有收到回复,他看了招聘系统说,我是面试了,然后希望我参与他的面试,既然面过了,面试过程会加快一些。

我婉言拒绝了,你们面试结果都没有通知一下,然后新面试官招人也不想看一下自己系统我是否在参与招聘,,,当时太忙了,当时应该问一下,为啥一面挂了我?

五. 快手

一面

视频面试

  • 项目中有挑战性的地方或难点,只是听我介绍,没有深入问
  • 说完项目,就直接写算法题:字符串相加。easy的题目,没啥问题。
  • threadLocal的实现,有点模糊了,好气啊
  • 线程池的主要参数哪些
  • 单例模式实现有哪些?最后一个枚举实现,我前几天看的时候直接跳过了,以为会前面几种就行了,,,吐血
  • redis 的持久化机制有哪些,rdb过程中会堵塞客户端命令的执行吗?aof如果文件大了会怎么处理?
  • 数据库,聚簇索引和非聚簇索引的区别
  • 哪些隔离机制

总的来说问的还是挺简单的,并且比较浅。

二面

Java的多态的理解?有点忘记概念了,就是依稀记得动态绑定的概念,然后面试官给我解释了一下,哈哈

jvm的分代回收算法,目前市面上,不是有各种不同的回收器吗?为什么不能任意搭配?

算法题:一个二维数组表示一个表格上每个单元格的数字,给定坐标(x,y),找到所有跟这个坐标联通的并且数字一样的单元格。比较简单,就是dfs深度遍历。

三面

自我介绍,怎么实现事务的?不同的库怎么实现事务?引入分布式事务,说了一下二阶段提交,有缺陷也没办法保证强一致性,然后想解释tcc协议,但有点忘记了,说了个大概,面试官估计知道我不懂也就没继续问一下了。

怎么保证一笔退款不会重复退款。

你在团队做了什么贡献?做了哪些项目?有技术改造吗?效果怎么样?

为什么辞职?

有什么想问他的吗?

六. 抖音

一面

视频面试,面完快手紧接着就是抖音面。

晚上约同事打游戏放松了一晚上,第二天早上做核酸检测,跟20届进来的应届生同事一起去的,从聊天中得知,他目前的遭遇竟然跟我入职pdd大半年的处境简直一摸一样。感慨油然而生,回忆起点点滴滴。应届生进来,遇到不会带人的小leader,不关心新人的成长,入职大半年都是做边边角角的事情,就算熟悉业务了,也不会协调资源,放手给新人机会独立做一些大需求 -> 回忆杀等找完工作后单独写一篇文章记录自己在pdd的历程吧。

自我介绍和项目介绍,这个面试官应该确实是做电商业务的,面了这么多,除了b站三面老大关心交易链路的关系,这个第一个跟我探讨业务逻辑的。

上来就问整个退款链路的关系,上下游怎样怎样?引入分布式事务概念,表示没有用过,那问我应该怎么实现?二阶段提交,会有什么问题?怎么解决?这一部分没有回答好。

我就有意引入操作数据库和发送mq消息实现的可靠消息方式?从自己服务使用的可靠消息解决方案,到使用基础部门提供的中间件实现的可靠消息的实现原理。

数据库的索引优化,联合索引的最左匹配原则,为什么必须符合最左匹配?可以强制指定使用索引吗?

最后是一道算法题,二维字符矩阵,判断是否能找到指定单词,回溯算法(dfs),挺简单的,但我竟然有在遍历的时候,使用错误的变量导致程序运行结果错误,,,气死了。

二面

三面

算法题:判断两个链表是否有交点。哈哈哈,太常见的题目了,三种答案倒背如流,先说会引入空间复杂度的两种答案:使用hashmap or 使用两个栈。然后假装在思考有没有其他的解决方案,可不可以避免引入空间复杂度(其实答案早就了然于胸,只是装一下,让面试官以为我没见过这个题目,我真是机智的一匹),假装思考沉默一分钟后,说想到了一种解决方案,如果两个链表有交点,那遍历完自己的链表,再去遍历对方的链表,就能找到第一个相同的节点。

然后一个场景,就是安全扣库存的解决方案。我说可以两种方式:悲观锁和乐观锁。然后问我数据库层对于扣库存操作可以支持多大的qps,那怎么提高性能?创建索引,数据量太大需要分库分表,感觉面试官不是很满意我的答案。然后问我对于秒杀场景怎么设计扣库存的方案,把库存缓存到redis,使用incrBy原子操作。那怎么把数据同步到数据库呢?等活动结束把数据同步过去,,好像不满意,应该想问的是实时性的redis和mysql的同步,如何保证数据一致性问题?我当时不敢往这边引导,因为我不清楚如何操作redis的同时去与数据库的数据保持一致。

接着问了如果请求redis更新库存,网络抖动了,那应该怎么处理?分两种情况:一是,redis还未执行扣库存操作,然后请求异常;二是,redis执行扣库存操作后请求异常没有收到正确的返回结果。第一种情况容易处理,直接重试就行。第二种情况就比较麻烦了,必须要识别redis是否执行成功,所以可以通过另外一个key记录这个订单是否已扣库存,两个key的操作写在lua脚本上,保证命令的原子性。面试官没有反驳,这个方案应该没问题。最后说没有什么好问的了,有什么问他的?

耗时:30分钟左右,面试时间还是比较短,希望抖音给机会啊!啊!啊!

hr面

1分钟的自我介绍。人在上海,为啥选杭州岗位,分享她对杭州的看法。

复盘前面三轮技术面的,我自己哪有表现好的地方和不好的地方?如果要求对自己面试的表现打分,打几分(10分制)?对面试官的体验是怎样的?

在公司内部,公司研发部门结构是怎样的?小组内几个人?他们分别工作几年?leader对你的评价?

绩效是怎么样的?

为什么离职?

七. 阿里短视频电商平台

一面

电话面试,在公司旁边商场三楼吹着冷风进行面试,酸爽。

首先自我介绍。

  • Java基础:ArrayList 和 Linkedlist 区别;HashMap 实现,1.7与1.8区别和改进;ConcurrentHashMap 怎么保证线程安全的?
  • JVM:内存划分,full gc过程,g1回收算法实现。
  • Spring,讲讲aop和ioc,springboot的常用注解,说三个就可以了。
  • dubbo的组成和实现
  • 项目相关问题,分库分表的实现
  • 有什么想问他的

约我做一个算法题,我说,有点突然,以为只是电话面试,所以人在外面,身边没有带笔记本。然后约了视频面试。

视频面试就是做两道算法题:

  • 给定一句英文字母,两个线程分别轮流输出字符
  • 实现62进制

看完我写的代码,说没有问题,然后说一下后面的面试流程,后面面试需要在年后了,二轮面试是技术面,三轮是hr面。面试环节有点短,竟然只要两轮技术面,祝自己好运吧。

二面

电话面试,历史总是惊人的相似,今晚又是月黑风高,我又在公司旁边商场三楼吹着冷风进行面试。

上来直接问最近做的项目是什么?有什么难点?怎么解决的?我说的是资金回收的项目。如果一个订单参与10几个活动,串行调用,那资金回收整个计算过程rt是不是会很大,可以怎么优化?我当时脑子瓦特了,只想到是不是可以多线程并发调用接口的解决方案。但忘记了现有的解决方案就是,正常情况,是存在很多活动,但活动所属的业务方就那几个,我们可以通过把业务方的所有活动聚合起来进行批次调用,即多这个业务方的需要计算的所有活动放到一个list参数里面,只进行一个rpc接口调用,可以大大减少rpc的网络耗时。

问了一下jvm的垃圾回收算法,以及垃圾回收器是什么,有没有内存调优的经验?我直接说没有。然后问一下我知道哪些内存配置的参数吗?其他问题忘记了。

三面

面试官先自我介绍,然后让我自我介绍。

缓存有了解吗?我们退款侧这边只用于分布式锁。那你知道缓存穿透吗?那怎么解决呢?暴力法:缓存数据库不存在的key;布隆过滤器。你们是这么有其他部门是这么用的吗?我不了解。

rpc用过吗?rpc跟http有什么区别?那你们在使用rpc过程中遇到什么问题?绞尽脑汁也没想到有啥问题,有问题的话dubbo工程师也帮我们解决了啊,,,然后他引导说,比如序列化和反序列的过程中,如果对象很大,反序列化时就会很耗时,然后一直占用线程,最终可能导致线程池满了,无法提供服务,我只能说,那确实有这种可能,但我在我司没有听过这种异常。如果让我实现一个高可用的rpc,你会怎么设计?

然后就没有了,问我有什么想要问的?

阿里一级主管答疑

hr面的过程中,问我有什么想问的?我表示当时技术面的时候只是大概说了一下我们部门业务是短视频中台,但不了解具体的业务,hr大概介绍了一下,然后表示详细业务他会找部门主管了解的,我以为是句空话。想不到下午技术主管就约我跟我介绍部门业务,说实话,挺感动的,受宠若惊,不像网上说的,”我可是阿里啊“的招聘态度。

部门老大介绍了部门具体业务,目前的现状,以及后面的规划和发展,超级感动。

八. 美团优选

一面

自我介绍,问一下部门情况,跟多多买菜的关系。

算法题:两数之和(使用链表表示的数字,比如142 + 563 = 705;链表倒序表示格式: (2 -> 4 -> 1) + (3 -> 6 -> 5) = (5 -> 0 ->7))

分库分表的实现。

面试官一副无精打采,说话有气无力的,然后面试完全没准备,半天想不出一个面试题,很无语了。

二面

一面完,hr马上微信约二面时间,直接婉拒了,美团优选听说太累了,而且也不想面了,太累了,从准备面试到现在耗时太长,身心疲惫。而且,手上也有offer,以及阿里、快手、抖音面试表现还不错。现在就坐等三家的反馈结果了

八. 小红书

项目介绍,有点紧张,介绍退款打款干嘛的,没介绍好。项目介绍完,问使用了哪些技术栈?

  • Spring问了循环依赖怎么解决,一路解释循环依赖使用范围解决方案,没说完就被打断了(估计是看我知道);aop实现;单例是否线程安全,不安全的话,怎么保证线程安全?正常不会在单例类下面设置有状态的属性;如果必须要的话,通过乐观锁和悲观锁保证安全;或者使用prototype原型每次获取新的bean。问我用过threadLocal吗?我解释threadLocal的原理,他说可以用这个保证单例的线程安全。我说,这种方案其实是让资源私有化嘛,嗯呢!
  • mq怎么保证幂等;kafka底层怎么支持高效率的,kafka这块压根没复习,,
  • redis分布式锁的实现;公司级封装的分布式锁的实现有看过嘛,有对集群情况下有超过一半加锁成功才能认为加锁成功,可以解决即使出现小范围宕机,也能保证锁不会丢失。解释普通redis在分布式中容易出现的问题;
  • dubbo怎么实现,服务注册和发现和rpc调用,简单介绍了一下,还好没深入;netty有了解吗?我说没了解,但知道实现使用的reactor模型,底层其实是使用io多路复用实现的(故意引导我会的),那你说说epoll的实现。
  • 数据库慢查询的排查优化方式;最左匹配

编码: sql:一个student表里面有name,学科class,分数score, 找到学生所有学科都及格的名字。我一开始一直正向思维考虑怎么确定这个学生及格的学科数量等于学生参与的总学科数。面试官看我没思路,就提示我可以反方向思考,比如如果学生存在不及格的学科就符合条件。醍醐灌顶,主要还是在面试中比较难正常思考并且也缺少sql的训练。写完sql忘记使用distinct去重。

算法题:

  • problem1: 数组长度n+1,所有元素是[1,n]存在一个重复元素,但重复次数不确定,找到这个重复元素。不能修改数组,不能O(n2),空间复杂度O(1)。没有思路,面试官提示这些要求下面只能通过遍历,能不能减少遍历呢?减少遍历,联想到使用二分法,但我看了数组无序,通过比对数量也没找到切入点能确定答案最终落入到左右两个区域中的哪个。面试官想解释,但好像是忘记思路了,我就说我也没有思路,能不能换一题试试(哈哈哈),面试官就说他也有点忘记了,就换了一题。
  • problem2: 给定字符串找到最大重复字串。这题我前不久刚做过,舒服啊,我直接写了答案了。

人生第一份跳槽面试经历相关推荐

  1. 一次惊险的跳槽面试经历(阿里/美团/头条/网易/有赞...)

    转载自   一次惊险的跳槽面试经历(阿里/美团/头条/网易/有赞...) 每次说因为生活成本的时候面试官都会很惊奇,难道有我们这里贵?好想直接给出下面这张图,厦门的房价真的好贵好贵好贵... 面试过程 ...

  2. 一次惊险的跳槽面试经历(阿里美团头条网易有赞)

    转 一次惊险的跳槽面试经历(阿里/美团/头条/网易/有赞-) 为啥跳槽 每次说因为生活成本的时候面试官都会很惊奇,难道有我们这里贵?好想直接给出下面这张图,厦门的房价真的好贵好贵好贵... 面试过程 ...

  3. 第一阶段笔试面试经历 0 offer 2021年9月21日

    2021.09.21 从今年的8月13日投递了第一份简历之后,到现在收到了许多感谢信,还有一些信在路上,目前没有拿到过一个offer,基本上都是倒在一二面上.之前师傅和我说,如果一二面经常挂,说明自己 ...

  4. 人生第一份Offer,国企、私企、外企该选择哪一个?

    就业是一段旅行,一个岗位就是一个驿站,在择业过程中,看遍沿途风景.毕业季,你或许会同时收到多份Offer,比来比去,似乎还是觉得每个Offer都各有优劣.到底该如何选择? 其实作为应届毕业生,选择Of ...

  5. 大学毕业1年,从监工转行软件测试,我拿到了人生第一份8k的offer

    大家好,我是小静,是一名IT转行人,2015年毕业于某所XXXX大专,大学学的专业是土木工程,毕业也是不出意外的来到了工地,从事的是一份监工的工作,就是工地上带白帽子的,每个月拿着4000块钱的工资, ...

  6. 人生第一笔试加面试 SAP胜略

    一直在跟着学校导师的项目,在毕业之前还是想着出去锻炼锻炼.最近各大公司开始在学校进行宣讲还有一些网投,在狂招实习生,想着正好可以借机锻炼一下.          下面先说说笔试吧:     首先要吐槽 ...

  7. 程序员的第一份实习!附面试初体验

    实习经验分享,六点起床,日薪 100,坐高铁上班,为了什么? 大家好,我是鱼皮. 很多小伙伴私信问我些关于找实习的问题,比如学编程到什么程度可以找实习?到哪儿能找到实习?实习时一般都干点啥?我的技术太 ...

  8. 人生头2次面试的总结与反思

    我是一名大三学生,因为这几天有企业来学校招聘,所以今天,不对,应该是昨天(2011.5.26)下午从14:00-19:00一直在两边的面试中周转着.这是我人生的头2次面试,全部集中在同一天的下午(因为 ...

  9. 美团Java实习面试经历(拿到Offer)

    美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准备 ...

最新文章

  1. django权限系统实现步骤_Django密码系统实现过程详解
  2. linux 目标文件格式,Linux工具 - NM目标文件格式分析
  3. CSS3选择非第一个子元素
  4. web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件
  5. java spring配置类_spring 配置 Java配置类装配bean
  6. oracle 最大值及其_学习笔记:Oracle优化 SQL查询最大值 最小值时的优化方法案例...
  7. linux利用anaconda配置python虚拟环境
  8. C++面试题:介绍一下STL,STL如何实现vector
  9. Windows10应用磁贴如何显示
  10. 博客线下推广的小技巧
  11. 4和2大于号小于号箭头那边_‘’口诀化‘’教学之二――大于号和小于号
  12. iOS中最值得设计师学习的33个APP图标
  13. 【行为管理篇】03. 网桥模式连接 ❀ 深信服上网行为管理
  14. ADCIRC模式与Python融合技术应用
  15. surfer-地形图渲染
  16. 【百面机器学习之算法工程师读书笔记】——第十四章:人工智能的热门应用-游戏AI
  17. 智能小车建图导航-在rviz中导航(代码解读)
  18. ctfmon 输入法消失了
  19. 27岁没文凭,想努力自学编程,有机会成为程序员吗?
  20. 如何取消Eslint的检测机制

热门文章

  1. Android 在线PDF文件加载
  2. 应用与系统稳定性第五篇---Watchdog原理和问题分析
  3. STM32CubeMAX 安装 2020年3月26日
  4. 深入浅出TVS瞬态抑态二极管
  5. GlobalSign和DigiCert对比
  6. 探究:Adobe Premiere Pro CC 2018 导入SRT字幕显示不全问题
  7. (十八)Flink Table API SQL 编程指南 Table API 和Datastream API 集成
  8. 微软最爽命令行工具将成 Win11 默认终端
  9. pyhton的tkinter制作简易口算训练器
  10. 互联网晚报 | 05月17日 星期二 | 郑州首套房贷利率最低降至4.4%;可口可乐被曝员工不得购买竞品...