两年工作经验,第一次参加社招,总结了十几家一线大厂的面试题!

2年社招后端开发面经

从3月20号开始投简历,总共面试了9家公司,收到8个offer,和大家分享下学习过程。
平时主要还是做业务需求以及一些技改,会根据做的内容看一些相关的书,比如之前主要做数据库的时候看了高性能MYSQL以及深入理解INNODB,搞kafka的时候看了kafka技术内幕,搞redis和ES主要是通过网上一些文档还有知乎学习的原理,然后我的主要语言是JAVA,比较喜欢Effective java、深入理解Java虚拟机、SpringCloud与微服务构建、java设计模式等,还有一本好像叫Spring源码解析也挺不错的,对理解Spring结构的设计思想以及提升自己的代码架构有一定帮助。
然后就是准备找工作的阶段,主要会在牛客上看相关公司的面经,根据面经的内容在知乎、CSDN、CNBLOGS等网站搜相关内容,会比较深入地挖掘原理。涉及的知识面也比较广,从java到spring到springCloud,MYSQL,Redis,Kafka,ES,ZK,操作系统等等都会涉及。这些其实在面经都有只要认真准备都能在比较短的时间里根据自己的基础情况进行查漏补缺。
下面主要列举一下我这一个月以来的面经,有些内容我已经忘了,会把比较有记忆点的内容写下供大家参考。

富途:

一面:

1.做题:买卖股票、二叉树层序遍历、判断一个乱序数组是否是等差数列
2.三道填空题:分别考察引用传递和值传递的输出结果、volatile作用等
3.volatile原理
4.synchronized和reentranlock区别,我一开始从源码讲的,后来在面试官引导下说了公平锁,是否可中断,多个condition对象等

二面:

1.进程线程协程
2.docker实现原理,cgroup+namespace
3.10亿个整数的冷热数据缓存方式
4.TCP问题,timewait
5.做题:3.6K,13G,24.5M这种转换成整数

三面:

1.做题:设计一个扫雷游戏,给定盘子大小和雷的个数,要求每个格子生成雷的概率相同
HR:
主要是聊离职原因和期望薪酬

货拉拉:

一面:

1.有没有看过Spring实现事务的源码
2.好像也问了docker…忘了
3.TCP握手,timewait

二面:

记不得了
三面:
主要问个人平时的工作,介绍了下部门的业务
HR面:
因为这个部门是做海外市场的,所以有一段英文对话面试,我说的坑坑巴巴的但因为之前我在国外留学所以说都能说出来

VIVO:

一面:

1.KAFKA相关问题,如何写producer发的消息,什么时候给producer返回成功,consumer是主动拉消息还是kafka给consumer推等等
2.redis问题,redis相关数据结构
3.mysql问题,索引,隔离级别
4.一些java的数据结构,hashmap啥的
5.垃圾收集器 G1 CMS
6.线上问题怎么排查 top jstack jmap dumpOnOutOfMemory

快手:

一面:

1.MYSQL引擎区别,innodb原理,隔离级别的作用,可重复读和读已提交有什么本质区别
2.redis问题
3.做题:找到二叉树中给定两个节点的最小共同父节点

二面:

全程只有一道题,设计一个抢红包系统.主要会考察接口设计,字段定义,多并发问题,缓存问题,数据库表设计,同步异步通信问题等等

三面:

聊了聊项目,问了下我们权限系统的实现架构,问了下微服务设计思想
HR面:
离职原因及期望薪资

shopee:

一面:

1.CAP,为什么只能满足两个,介绍用到CAP相关思想的架构,我说ZK,满足的CP
2.MYSQL
3.REDIS
4.JAVA集合框架类
5.线程池原理
6.分布式事务,2PC 3PC TCC,区别
7.做题:忘了,好像也是二叉树问题
8.虚拟内存

二面:

1.聊项目,问有没有支付相关背景经验,答没有
2.认为在支付场景中最重要的是什么,答一致性.如何实现,tcc,本地消息表等
HR面:
聊离职原因和期望薪资

微众:

一面:

1.JAVA集合,线程池
2.MYSQL
3.REDIS
4.KAFKA
5.大文件排序,10亿个数排序,答外排,拆分以后分别排序,然后K路归并

二面:

1.问Spring事务隔离级别
2.项目里的微服务之间的通信用的什么协议,答用feign的http,长连接短连接,答用的http1.1长连接

三面:

1.主要聊了下项目,个人规划等
HR面:
聊离职原因及期望薪资

阿里LAZADA:

一面:

1.知道java的哪些集合类,我把list map set等都介绍了下
2.synchronized实现原理
4.redis原理
5.mysql
6.KAFKA
7.做一道题,忘了啥了反正也是剑指offer里的

二面:

1.设计模式,知不知道享元模式(不知道…)
2.一些项目还有其他的八股文,记不得了,二面比较快可能不到半小时
HR面:
期望薪资和离职原因

字节教育:

一面:

1.java里面hashcode的实现原理是什么,知道有哪些计算hash的算法
2.哈希地址冲突有哪些解决方式
3.TCP握手,timewait作用,TCP握手的时候要交换什么数据,拥塞控制控制的是什么
4.浏览器发起一次请求的整个历程
5.DNS用的什么通信协议
6.做题:最长不重复子序列
7.僵尸进程,怎么解决

二面:

1.redis为什么那么快,epoll实现原理,为什么epoll比select快
2.常规八股文

三面:

1.最了解什么技术,答mysql,要深入挖一下,问mysql各种问题,从索引到B+树到节点,再到mysql缓冲池有哪些东西等等
2.做题:忘了,不超过mid难度
3.设计一个长URL转短URL系统
HR面:
离职原因,期望薪资

腾讯:

一面:

1.Java相关集合类
2.mysql
3.给了几个SQL语句问哪些能用到索引
4.做题:大中小括号序列是否合法,大括号不能在小括号里面

二面:

1.主要是根据项目问,问了下我们的ES架构,index结构,为什么这么设计,答得时候回答了ES的冷热数据等(page cache中的缓存segment部分)
2.我们项目有没有mysql主备,知不知道mysql半同步
3.如何防止sql注入,mybatis里#和$的区别
4.KAFKA

三面:

1.做题:求笛卡尔乘积,其实也是剑指offer里的原题
2.问项目里的微服务架构设计思想
3.服务发现机制怎么做的,答使用k8s,通过service发现pod,问service是如何发现pod的

四面:

1.主要是问了项目,以及为什么这么做
2.用的什么负载均衡机制,答使用k8s原生的负载均衡,根据service对pod进行轮询.问如果pod挂了怎么办是否还会被调用到,答k8s不会路由到坏的pod.问如果pod本身没挂只是一直报错怎么办,答可能需要考虑更换负载均衡框架,比如使用ribbon,通过ribbon的一种负载均衡机制来实现(可以根据以往的调用是否成功历史决定后续的调用权重)
HR面:
离职原因和期望薪资

面试资料总结

下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!
有需要的朋友点击这里自取就好了,希望资料对你有帮助!

SpringCloud

Redis

JVM

MySQL

Zookeeper

Kafka

Dubbo

spring

Rabbitmq

springboot

最后

由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累…所以需要阅读阅读学习的,大家“一件三连后:“查看下方””即可拿到手之后自己学习吧,博主真的打字打累了。

有需要的朋友点击这里自取就好了,希望资料对你有帮助!
预祝大家前程似锦,工作顺利!

你可能感兴趣的:(Java,程序员,面试笔记,redis,面试,java,spring,数据库)