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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容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
相关文章
|
27天前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
61 1
|
2月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
2月前
|
存储 移动开发 前端开发
「offer来了」面试中必考的15个html知识点
该文章汇总了前端面试中常见的15个HTML知识点,涵盖了从HTML文档的规范书写、doctype声明的作用到新兴的HTML5标签应用及移动端viewport设置等内容,旨在帮助求职者更好地准备相关技术面试。
「offer来了」面试中必考的15个html知识点
|
2月前
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。
|
6月前
|
Android开发 API
顺利通过阿里Android岗面试,已拿offer
顺利通过阿里Android岗面试,已拿offer
顺利通过阿里Android岗面试,已拿offer
|
6月前
|
设计模式 缓存 前端开发
真的强!借助阿里技术博主分享的Android面试笔记,我拿到了字节跳动的offer
真的强!借助阿里技术博主分享的Android面试笔记,我拿到了字节跳动的offer
|
6月前
|
前端开发 Java 物联网
Android开发面试基础,3天拿到网易Android岗offer
Android开发面试基础,3天拿到网易Android岗offer
|
6月前
|
Android开发 Java 容器
顺利收获Offer,字节Android面试必问
顺利收获Offer,字节Android面试必问
|
6月前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
6月前
|
算法 Java 关系型数据库
在家“闭关”,阿里竟发来视频面试,4面顺利拿下offer
关于个人呢,我是一个普通的双非本科生,在校成绩不错,各方面的表现自我感觉也比较突出,今年大四即将毕业,对自己进入大厂工作是很有信心的,我的方向是Java,也知道现在Java的竞争比较激烈,大厂比较难进,但我丝毫不胆怯。当然,我还是很走“狗屎运”的,没想到闭关在家期间,也能收到阿里发来的视频面,还一路顺利拿下了offer。
下一篇
无影云桌面