【面经分享】-5家面试3个offer

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 5家面试3个offer

image.png

本人工作三年有余,承蒙领导信任,工作第二年就开始带团队了,团队规模从开始的3人到20+又到3人(政策及资金原因,期间做过聚合支付,也带团队从0到1干过支付+营销的完整产品,个人觉得自己实力比上不足比下有余,菜鸡高级开发。

由于校招到现在没面过试,所以不晓得目前市面上的面试都是啥套路,本次找工作整体流程就是,离职,在家看了两周的面试题,然后开始投简历,然后面了大概两周,一天只约一个,回来总结经验教训和知识盲点,比如有哪些回答本来可以答的更好,组织语言,下次再问我就一脸自信,无懈可击,两周时间,一共面了5家,拿个3个offer(还有一个最近面的,还没消息)。

题目与分析

第一家:某某直聘
一面的笔试和二面的问题比较中规中矩,都是常规问题,比如线程池参数、线程池原理、hashmap原理、类加载机制、CMS收集器、volatile原理(没问到MESI,只问到作用,明显仨,再就不问了),还有就是一些实际问题的处理,缓存双写一致性、分布式事务、IOC、AOP的原理、bean生命周期等等吧,吹的还可以。三面的时候有俩题没答好,一是不停机分表怎么做,并且基于时间分表后,跨表查询怎么做。这个当初回答是生产没做,如果想做可以怎样怎样;第二个问题是秒杀如何解决超卖,这个很久之前看过,当初一下子懵逼了,答个稀里糊涂。之后HR面,问我现在给你发offer,一周之内能入职么,我说不能,你家是第一家,得等我面完其他四五家的,然后。。。就没有然后了,这家就挂了。

回来认证总结了一下,对于第一个问题,我们做过基于mysql的统计分析,实现就是mysql binlog -> kafka -> storm -> es。这不完美解决么,因此再有人问我,就回答将数据全量同步到es中,随便查。第二个问题,其实也蛮简单,无非就是C层限流(令牌桶),biz层队列(排队),dao层检验,查询丢redis。事实证明,后续只要提到这都会问这俩问题,后续再无破绽。

放出一面笔试题:

  • 两个数组,求交集
  • 一个包含全部select from where group by having order by 的简单sql
  • 给定两个数组,只有一个字符不同,其余字母值和顺序都相同,设计一个方法,高效找到这个字符
  • 实现死锁

第二家:某菜网

当初校招差一点就去了他家,校招给钱很多,不过社招实在是扣,曲折的线路,转盘道差一点走丢了,共享办公区,茶水间面试,写算法没有纸,体验有一些不太好。

一面,笔试+面试,面试还是那些问题,没啥可说的(主要我是没记住),笔试题如下:

  • 删除单链表中的元素
  • 实现懒加载,线程安全的单例
  • 设计数据库表,存放学生、课程、学生的课程及成绩,并给出sql语句,查询平均成绩大于85的所有学生
  • 有一台双核CPU,2G内存,1TB硬盘的机器和一个800G的文件,格式如下,求访问量最多的TOP100的IP地址和访问次数,简述解题方法。
  • 192.168.1.1 GET/HTTP/1.1 200 580 "-" "Mozilla/5.0"
  • 手写LRU缓存,要求输出请求未命中的次数

    二面,有俩问题印象挺深刻,主要是启发式面试,个人比较喜欢。一个是我司自己实现了一整套服务治理,可以实现优雅启停等等,面试官和我详细探讨了这么做的好处以及怎么做。另一个问题是mq的使用问题,一连串,比如使用mq的时候如何保证数据一致性,幂等性,消息积压,消息丢失等等,还聊了一些缓存相关的,比如热点商户缓存失效,穿透,雪崩等等吧,其他都是简单问题,就不赘述了(还是因为没记住)。

    好像没三面,hr那天又请假了,我就回去等了。后来等来了消息。

第三家:某东

朋友推过去的,效率奇高,上午9点到,中午12点hr面都完事儿了。这个回来整理了,因此题目比较详细。

一面:

1、Object的方法

2、jdk1.8比1.7做了哪些改变

3、volatile原理

4、工作中用到的redis数据类型及场景

5、工作中用到的线程池及原理、每个参数是怎么设置的

6、工作中用到的Redis锁及原理

7、slect  from a left join b on 条件 和 select  from a left join b where 条件一样么,为什么

8、热点商户的缓存穿透怎么解决,排队后面的请求等待时间过程怎么办

9、hashmap的put过程和扩容过程

10、用list users = new ArrayList<>()来说明类加载过程和整个过程中内存各区域的变化

11、线上用的垃圾回收器是啥,分几个阶段,哪个阶段stop the world,eden里还有什么

12、设计一个高可用、幂等、安全、高性能的接口需要分别考虑什么

13、Spring IOC bean初始化过程

14、mybatis的执行过程

15、事务隔离级别和mvcc

16、redis集群现在有10台机器,新加入5台,数据是怎么同步的

17、redis的持久化方式、redis的过期策略

18、redis和memcache的区别

19、mysql有哪些索引类型

20、lock和synchronized区别,生产还用过juc下的哪些类,场景

21、AtomicInteger的原理

二面:

1、redis lru是怎么实现的,如何手写一个lru

2、B树和B+树的区别,mysql为啥使用B+树

3、红黑树的特性及变换

4、生产上的分布式事务怎么做的

5、分布式限流

6、mq积压如何保证消费到最新的消息,mq如何保证消费顺序

7、lambda写一个排序

8、mysql能发生死锁么,为什么

9、生产上的服务降级做了么,怎么做的

10、缓存的双写一致性怎么保证,生产是怎么用的,有什么问题,怎么解决

11、生产的不停机分表怎么做的,怎么支持跨时间查询,有无其他更好的分表方式

12、说一下下单的整个流程

13、如何解决超卖

14、线上发生过jvm问题么,如何排查的,引起原因是什么

15、线程池的核心参数及原理

同样没三面就hr了。

第四家:某手

hr还下楼来接,面试官的体验也很棒,整个一面就在白板上给他画,想到哪就画到哪,聊到哪,不像面试,倒像是探讨问题。二面就比较严肃了,问一个答一个,还问了一个比较低级的业务问题,我一股无名火,差点没急眼,幸亏忍住了。。。三面是个boss,体验也挺棒,还是以引导面试为主,不会的会引导你,总体觉得这家公司很注重人的感受,很喜欢。

一面

1、介绍一下项目架构:技术+业务

2、缓存双写一致性,先更新db再更新缓存有什么问题

3、系统内的一致性和通道方的一致性如何解决

4、volatile原理和应用

5、mysql索引分类,详细介绍一下聚簇索引和结构

6、数组交叉合并,例如

[[1,3],[2,4],[5,7],[8,9]]输出[[1,4],[5,9]]

7、两个事务

T1                                    T2

begin:

select * from t where ...

                                    begin:

                        insert into t (id,name) values (5,"小明");

                                   commit;

update t set ... where id = 5; -->(问这条是否可以执行成功,为什么?)

commit;

8、redis使用了哪些数据类型,怎么用的,过期策略

9、redis如何实现分布式锁

10、限流和服务降级做了没,怎么做的;简述令牌桶原理

11、线上秒杀是怎么做的,超卖怎么解决

12、介绍一下mvcc和间隙锁

13、写一个单例

14、线上垃圾收集器,CMS几个阶段

15、redis和memcached区别

二面

1、ThreadLocal用过没,说一下原理

2、项目难点

3、表t(id(主键),sid(学生id),cid(课程id),score(乘积)) 求所有乘积都超过90的全部sid

4、将一个小于千亿的long类型的数字转成中文输出

例如1234 输出:一千两百三十四

5、synchronized 和 Lock区别,建议使用哪个,为什么

6、tcp和http的区别,一个tcp连接可以发送多个http请求么,什么参数控制,浏览器请求连接数有限制么,是多少,是服务端限制的还是浏览器限制的

7、介绍一下saas平台的主业务流程

8、平时怎么带项目的,说一下具体流程

三面

1、过去项目中最大的成就是什么、业务、架构、管理都可

2、完成情况,指标

3、未来的职业规划

4、写个方法,要求考虑性能

输入:File file

文件5G,JVM 1G

文件格式:2020-01-08 10:07:23 123

123是用户ID,范围1到100亿

要去:解析文件,统计并打印每个用户的总访问次数,打印出用户ID和总次数即可

没有脏数据、可以写伪代码

第五家:某滴

这个体验也有有点差,茶水间面试,等三面等了一个多小时,都想拍屁股走了,给hr打电话才来。

一面

1、支付三年,你认为支付系统比较重要的是什么

重复支付预防,分布式事务和降级,热点商户的处理

2、这三个都是怎么解决的

3、热点商户使用乐观锁+重试,如果重试也不行怎么处理,然后问了一些数据库的锁

4、分布式事务和降级怎么做的,定时用的什么组件,quartz单点怎么解决,广播的话怎么做,不用mq怎么做,自己实现一个分布式的delayqueue怎么实现

5、redis怎么用的,用了哪几种数据类型,底层数据结构是什么,string相比c的char数组做了哪些优化,list怎么用的

6、重复支付怎么搞定的

7、对账怎么搞,准实时对账怎么搞,如果只想从从库拉数据对账怎么解决延迟问题

二面

二面基本上就没有基础问题了,都是一些业务场景怎么处理,线上出问题如何查询解决优化等等。
  • 对账怎么做的
  • 账户系统如何解决资金一致性问题
  • redis锁怎么实现及用法
  • AOP举个线上的例子
  • 缓存一致性
  • 服务降级和限流

三面

三面跟二面差不多,基础问题不多,有一些管理相关的。
  • 设计模式怎么用,用过哪些
  • 团队怎么管理,日常比例
  • 架构怎么设计,说一下具体流程
  • 服务怎么拆分,原则
  • 不停机分库分表怎么做
  • JVM问题排查,栈溢出,OOM,CPU飙升
  • 开发流程说一下过程
  • 如何保证线上代码质量
  • 除了内部灰度,还有哪些方法可以提高线上产品的质量以及减轻损失
  • linux原理(完全不会)
  • 其他我没记住
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
Android开发 API
顺利通过阿里Android岗面试,已拿offer
顺利通过阿里Android岗面试,已拿offer
顺利通过阿里Android岗面试,已拿offer
|
3月前
|
设计模式 缓存 前端开发
真的强!借助阿里技术博主分享的Android面试笔记,我拿到了字节跳动的offer
真的强!借助阿里技术博主分享的Android面试笔记,我拿到了字节跳动的offer
|
3月前
|
前端开发 Java 物联网
Android开发面试基础,3天拿到网易Android岗offer
Android开发面试基础,3天拿到网易Android岗offer
|
3月前
|
Android开发 Java 容器
顺利收获Offer,字节Android面试必问
顺利收获Offer,字节Android面试必问
|
3月前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
3月前
|
Dubbo NoSQL Java
太为难我了,阿里面试了7轮(5年经验,拿下P7岗offer)
今年的大环境非常差,互联网企业裁员的现象比往年更严重了,可今年刚好是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽也在疫情好转之后开始进行了。但是,不得不说,这次阿里面试真的太难为我了,可以说是和面试官大战了7个回合,不过好在最后给了offer。
|
3月前
|
算法 Java 关系型数据库
在家“闭关”,阿里竟发来视频面试,4面顺利拿下offer
关于个人呢,我是一个普通的双非本科生,在校成绩不错,各方面的表现自我感觉也比较突出,今年大四即将毕业,对自己进入大厂工作是很有信心的,我的方向是Java,也知道现在Java的竞争比较激烈,大厂比较难进,但我丝毫不胆怯。当然,我还是很走“狗屎运”的,没想到闭关在家期间,也能收到阿里发来的视频面,还一路顺利拿下了offer。
|
3月前
|
消息中间件 Java 关系型数据库
金三银四,如何远程面试拿下大厂offer?(附大厂面经+面试宝典)
“找工作 3 个多月了,还没有遇到合适的,坐标杭州。”“坐标北京,2 年工作经验,裸辞 1 个月了,Java/Python 方向都在找,投的简历都石沉大海了。”“金三银四找的全是 996 的,双休只有外企和非互联网行业。”“去年冬天被裁员的,今年到现在还没找着像样的工作。”“投了半个多月简历,一个面试机会都没有,送达,已读。”
|
3月前
|
缓存 算法 NoSQL
凭借一份“面试真经pdf”,我四面字节跳动,拿下1-2级offer
近两年是中国互联网企业组织架构升级的大年,阿里、腾讯、小米、快手等知名互联网企业都进行了相应调整。2020年3月12日,字节跳动成立八周年之际,宣布组织全面升级,而这一消息也彻底激起了我对字节跳动的期待。
|
3月前
|
网络安全 数据库
嵌入式如何面试10家公司,拿到9个offer的?
嵌入式如何面试10家公司,拿到9个offer的?
38 0