金三银四过后,小编收集到了一许多粉丝和朋友发来的喜讯,从汇总的信息上了解到,他们平均月薪达到了32K,85%进入了阿里巴巴、字节跳动、拼多多、美团、京东、bilibili……这些知名大厂。
因为隐私保护,小编不便于公布他们的真实信息,各位程序员朋友们可以参考一下这些面试细节,做到知己知彼,方能百战百胜。
特别说明:下面的内容,就不是小编之前写故事那样半真半假的了,以下面试经历完全属实,但仅供参考
小编只记得,有些拿到offer的朋友跟我说之前就是在我这里领过面试资料,然后认认真真的补上了自己缺失的部分,就一路顺风的通过了面试。
组团进的大厂!!!
公司:美团
地点:北京
工作经验:0-3年
岗位:实习
面试次数:3次
面试内容:
美团一面(80min)
面试主要是从一个系统设计出发,考察基础跟项目架构经验。美团相当重视基础问题(计算机网络、操作系统),主要是围绕一个系统优化来的,下面就几个重点提问:
1. 项目介绍(聊一下自己做的项目,前期了解了一下)
2.redis相关问题
2-1. redis主要能解决什么问题,聊一下你所知道的?
2-2. 聊一下redis高可用的相关。主要说一下哨兵集群的流程,包括选举、以及宕机之后的处理方案,以及cluster集群的工作流程。
2-3. 聊一下redis哈希槽,为什么不用一致性哈希的方案?
2-4. redis为什么这么快?
2-5. redis跟mq的技术选型。
3.mysql相关问题
3-1. mysql的事务隔离级别。
3-2. 面试官描述了一个场景#¥%……¥……%&*这种情况下你怎么优化mysql,说说你优化的流程步骤。
3-3. 你能想到什么优化mysql吞吐量的方案。
3-4. mysql的底层数据结构?索引怎么存储的?
4.rabbitmq
4-1. rabbitmq的优势,能解决什么问题?
4-2. 说一下rabbitmq怎么保证高可用的?
4-3. 聊聊镜像队列,怎么运作的?口述下代码?
5. 并发编程相关
5-1 hashmap跟concurrentHashMap
6. 接近一个小时的计算机网络基础、操作系统基础
美团二面(70min)
正儿八经的面试了
1. 再来一个场景¥%……¥#%……&*&%…优化mysql,具体步骤,什么命令,怎么操作,比较详细。
2. redis分布式锁的作用?什么场景用过?会有什么问题?(原子性的问题、误删锁、误得锁等等)怎么解决这些问题?(面试官提了几个场景,这块聊了半个多小时)
3. 详细聊了rabbitmq的工作流程。介绍下rabbitmq的组建,分别有什么类型,具体是怎么用的?口述代码。
4. redis高可用。
5. 聊聊你了解的RPC,dubbo与springcloud?(我因为没做过微服务项目,因此,问我,你觉得应该有什么功能,我从springcloud的角度回答的)
6. RPC与mq技术选型,说下原因。
7. Spring源码,我讲了事务的源码(撸了好几次了,比较熟悉)。
8. 手撸算法题两道。
9. 聊实习时间、地点,未来发展。
美团三面(50min)
HR(直接给录用函)谈笑风生…聊薪资,工作地点,还有一些要录入系统的基本信息,留了电话。
小结:美团的问题单个都不难,主要是在一个tomcat优化的场景下要把东西联系起来。
公司:bilibili
地点:上海
工作经验:0年
岗位:主要负责【数据分流】
面试次数:3次
面试内容:
Bilibili一面
1.问项目情况。
Bilibili二面
1.JVM:gc很关键,基本上只要问到jvm,必问gc。
答题过程:
说明垃圾处理器,说明垃圾处理器使用到的算法并说明什么时候对象被gc(计数器法(缺点)和可达性分析),叙述对象的分派过程,何时进入老年代,空间担保机制。双亲委派模型偶尔会问到,类加载过程一定要熟记于心。
叙述类加载过程,叙述双亲委派模型原理,并说到如果不使用双亲委派模型java连最基础的稳定都保证不了。
2.Jvm的内部结构?
**答题过程:**叙述出每个块的名字以及作用。
3.多线程:线程池会问到构造方法的参数,好处以及坏处。
内置锁和显示锁的使用场景 。
Cas原理和缺点解决的方法,以及原子类的说明。
Aqs,叙述数据结构,设计模式,模板方法和可重写方法,内部类状态的变化以及节点的成员变量,说到这一定要说明condition和aqs的配合使用。
ConcurrentHashmap1.7-1.8基本都会问到的,数据结构,get,put,扩容以及初始化,size,什么时候会扩容,解决hash冲突的办法以及1.8红黑树到链表的互相转换。(有的公司会问到arraylist和linkedlist如果两个线程去执行写操作会发生什么,我只说明了会引发线程安全的问题,这个时候就可以说说hashmap两个线程去扩容之后去get一个不存在的数据时会产生环形链表缓解一下尴尬。)
双重检测引发的问题(临界区重排序带来的)。
多线程远不止这些。
4.mysql的存储引擎myisam和innodb必问。
索引分别使用到的数据结构以及分类。
Sql语句的优化十条一定要记住,并说明原因。
事务的性质ACID以及隔离的级别并分别说明,引发的脏读不可重复读幻读分别在哪个隔离级别上会发生。
5.算法:快速匹配字符串(暴力匹配和KMP算法)。
其实还有其他的算法,我最后问问题的时候问了面试官,怎么找到两个链表的公共节点?怎么找到链表的环。
6.设计模式会问到单例模式,代理模式,工厂模式。
你看过哪些源码,有用到什么设计模式?
7.网络:osi七层模型
Tcp三次握手,四次挥手状态的变化(状态没记住呜呜)
Tcp为什么是可靠传输协议(确认机制和超时重发)
Bilibili三面
与HR阿姨嘘寒问暖。
小结:面试的时候一定要放轻松,会的问题不仅要答出来,还要让面试官跟着你的思路走,比如内置锁和显示锁的使用场景,我就成功地将面试官引到了aqs。
公司:京东数科
地点:北京
工作经验:4年
岗位:京东数科中台-主要负责业务是短信和push推送
面试次数:3次
面试内容:
京东数科一面
1.Java基础,接口,反射,数据结构,设计模式,实际处理问题的过程(这个会根据你说的方向深入一些继续问)
2.spring的注解及讲解aop,微服务用的什么,怎么选择的,消息队列,写代码后给出意见等。
京东数科二面
讲讲以前做的业务,问一些逻辑思考题,还有为什么来这,优势是什么,以后的规划,团队和个人不同意如何处理等。
京东数科三面
HR直面,整体问下以前公司的情况等问题。
小结:要熟悉基础,最好能把简历上的都特别熟练,会围绕简历问,中间会深入一个点问,不会了会换个方向,代码也要熟悉,中间会有看代码和写代码。
公司:字节跳动
地点:北京
工作经验:3年
岗位:大数据事业部服务端- 开发服务接 商业对接接口,还有各种kafka的消息推送
面试次数:3次
面试内容:
字节跳动一面
机试(java基础,算法,数据结构)。
字节跳动二面
主流框架理解,原理,数据库架构,设计模式应用,网络基础知识,分布式问题分析,并发编程,锁知识,JVM优化。
字节跳动三面
1.拓展知识,项目中常见问题的解决。如,如何保证redis和mysql数据一致。如何解决缓存击穿问题。如何实现并发限流,JVM锁和分布式锁的区别。
2.给一个业务场景,如何架构组件和数据库。1到1000个数,如何按顺序存储。(二叉树问题)
小结:掌握Java基础和算法基本就成功了一半,更多场景化操作可以加分又加薪。
最后说几句
这些问题真的很难吗?
不难!
你真的不会吗?
会!
面试答得出来吗?
答不出来!
为什么?
很多程序员朋友,都只在乎自己在工作中用到的部分技术,会用就行,公司不大,技术要求不广,够用就行。
恰恰就忽略了面试中问问题的深度与广度,真的是面试造火箭,工作拧螺丝吗?
不是,面试筛选出来的程序员,是能够符合公司长远发展需求,能够根据环境转变及时跟上不落伍的人才。
所以啊!霸哥奉劝各位还处在低薪,满足现状的程序员朋友,多看看前方吧!
需要的程序员朋友,麻烦关注+转发,添加vx:bjmsb2019即可免费获取。
或许下一个进大厂,给小编分享面试经验的大佬,就是你!
需要的程序员朋友,麻烦关注+转发,添加vx:bjmsb2019即可免费获取。