【秋招结束】已拿offer:链家+京东+网易+美团,附上面经
自三月以来,从春招实习,一路走到现在。很累,也很有收获,分享一波面经。
总结起来就是一句话:我的学校在211里可能不占优势,但是最终的结果,取决于你自己想成为什么样的人
网易(内推技术岗):
考拉海购Java岗 两轮技术面+HR面试
一面:
1、自我介绍
2、实习期间项目相关,然后转到Spring
3、Spring 在项目中用了哪些特性,IOC,及Kafka监听接口相关实现。
4、ThreadPool,Jdk原生线程池,四个参数详细解释原理,当线程池中poolSize达到corePoolSize且阻塞队列已满,再来一个任务,如何处理
5、多线程实现同步的方式,互斥同步,非阻塞同步,
6、解释Synchronize关键字的锁优化技术,偏向锁,轻量级锁,重量级锁,这些锁是如何存储的,偏向锁撤销升级为轻量级锁的过程,结合源码解释
7、volatile关键字语义,内存屏障如何实现,JMM对内存屏障做了哪些优化,volatile的语义增强
8、指令重排序相关及其happen-before时,数据依赖等
9、HashMap底层数据结构,如何处理hash冲突,为何HashMap的大小要设置为2的n次幂,为什么IndexFor方法里,需要hash&length-1,为什么HashMap允许null值,resize()过程,多线程下resize为什么会出现死循环,详细解释,结合源码
10、HashMap jdk1.8之后,为何转链式结构为红黑树,为何长度为8的时候,才转成红黑树
11、NIO了解吗? 这个。。没答好,属于知识空白
12、阐述一下快排基本原理。easy
13、手写单例模式。分别问了多线程情况如何处理,什么时候可以破坏单例模式,怎么防止单例模式被破坏
14、JMM内存模型,如何保证缓存一致性。
二面:
1、自我介绍
2、介绍实习项目
3、Kafka监听接口如何实现,为何采用Kafka而不是用其他消息队列
4、实现Kafka监听接口的时候,遇到哪些坑,采取了哪些措施或者解决方案
5、Kafka的基本概念,及特点和优势。offset+zk+持久化分区日志顺序存储之类的
6、MySQL了解吗,介绍一下InnoDB
7、JVM了解吗,介绍一下,讲了垃圾回收机制
8、Full GC和Minor GC区别,及各自的触发条件
9、说说CMS垃圾回收器,及其适用场景
HR面:
HR小姐姐,真的很漂亮=。=
HR面比较常规,相比于那些让讲笑话之类的,中规中矩,有没有实习,在哪儿实习,负责什么系统,为何让你独立负责,是否拿到offer,offer薪资多少,哪里人,以后打算在哪儿发展,是否接受入职前实习,是否接受996。
链家(实习转正)
实习:大数据部Java岗 三轮技术面试+HR面
前言:链家网的实习,对我提升很大,而且,是在春招被拒的我快万念俱灰的时候抓住的一次机会。印象很深。
实习一面:
1、自我介绍
2、HashMap底层结构,put方法源码分析,多线程下为何出现死循环等
3、线程池的基本原理,当时跟面试官,一行行的分析了execute()方法的执行过程
4、runnable和callable的区别
5、ThreadLocal是否了解
6、volatile关键字和synchronize关键字区别及内存语义
7、一道简单算法题,给定一个数组,每次返回数组中与上次不同的数组中的元素
实习二面:
应该是部门的交叉面,技术问的很少,更多的是交流职业规划及后面技术发展方向。
实习三面:
我们组的大boss,过来面试
看了我的简历,让我解释一下,如何实现微信的支付接口。回调接口又是怎么实现的,现在还是感觉,给自己挖了一个大坑。答的不理想
最后,聊了一下职业规划啊,人生啊之类的。boss很nice
Hr面:
基本在聊人生,聊了一下直接就给了实习offer。一周后收到邮件。入职开始实习生涯。
转正:大数据部Java岗 一轮现场笔试+两轮技术面试+HR面
笔试:实习生也需要参加校招生面试流程,而且笔试内容跟前不久链家提前批的题一模一样,早知道就认真看看了。答的血崩,时间来不及,很多关键的地方都来不及写。尤其是undo和redo,通过双栈实现只写了大概操作思路,实在写不完。后来HR面的时候,HR跟我说,题目是TC(技术***会)出的,为了有区分度,必须保证让大部分人一小时内做不完。
一面:
1、实习项目相关(估计面试官比较感兴趣)
2、项目介绍,系统设计难点。
3、在项目中,负责或者实现了哪些功能模块
4、实现过程中遇到什么坑
5、笔试题undo和redo的操作,深入探讨。
面试较快,大概20多分钟就结束
二面:
面试官是个算法大牛,公司内部做过分享,搞数据挖掘的。
1、自我介绍
2、项目介绍
3、链表倒转算法
4、设计模式:单例和工厂模式
5、算法:给出一个txt文件,制表符分隔,每行n列,每列是一个只含字母的字符串。输出每行中,含有相同字符的字符串。5分钟,脑子要炸了,思路没打开,后面提示,其实可以实现一个简单的compareTo接口就搞定了。太菜。
6、Linux 文件搜索命令。又是一个坑
7、Git命令考察。又是一个坑。
面完以后,感觉血崩啊,不过收获也很大。知道自己哪方面还有待提升。
Hr面:
聊聊人生,以及之前线上笔试出状况的原因,还有线下面试。时间等待比较久的原因。
京东 笔试没做,本以为都没有机会了,却被意外的捞了起来。
一面:
1、String字符串相关
1.1 String不可变对象,StringBuilder、StringBuffer区别
1.2 String拼接的时候,如何优化
2、Collection接口相关
2.1 List有哪些实现类,区别,ArrayList,LinkedList
2.2 LinkedList底层数据结构,ArrayList默认大小
2.3 set接口实现类有哪些,HashSet和TreeSet、LinkedHashSet区别,TreeSet如何保证有序
3、Map接口相关
3.1 Map接口实现类,HashMap,TreeMap,WeakHashMap、ConcurrentHashMap
3.2 HashMap底层数据结构
3.3 红黑树特点及性质解释
4. 多线程相关
4.1 线程的几种实现方式,runnable、callable接口实现,Thread类继承,ThreadPool实现
4.2 wait/sleep区别
4.3 wait与notify使用,锁的释放和获取
5 数据库
5.1常用数据库:mysql
5.2 数据库存储引擎:MyIsam和InnnoDB区别,底层索引
5.3 具体场景,1000万条数据,分库分表。水平拆分,垂直拆分。如何解决全局主键唯一性问题。
6 ***和负载均衡算法
6.1.负载均衡算法:随机,轮询,加权随机+轮询,最小连接数算法等
大概36分钟
有个别问题答的不是特别好,不过面试官人很好,主动加了我微信。
二面:
部门的大leader面。没有涉及技术问题。
1. 在实习期间,负责的项目,介绍一下
2. 遇到什么样的技术难题,挑几个讲讲
3. 如何解决的,解决过程中,有没有去总结,是否有更优的解决方案。
4. 是否有写自己的技术博客
5. 目前我们做的主要有三个业务方向,XX1,XX2,XX3 你对哪个感兴趣。
剩下一些问题各种聊,也问了面试官一些问题,比如工作的弹性制度、技术氛围。了解这个事业部里的大牛都是很年轻的一批人,一面面试官是最早来这个事业部工作的,比我只大一岁。
大概50分钟
HR面:
1.问我为何没有参加笔试。
2.谈谈对公司主旨:客户至上,诚信,团队,激情,创新的看法
大概12分钟
美团面经有点忘了,后续补上。
总的来说,付出很多,每天都在煎熬和焦虑中度过,又在煎熬和焦虑中不断提升自己,因为真的是没有多余的时间来抱怨和浪费。
最后,想说一句的是,笔试面经这玩意儿,绝不应该是参考以对付面试,而是为了让自己的知识体系更加完善,从别人的面经中不断补充原有知识体系中的漏洞。
最后当你形成了一个完整的知识体系了以后,所谓的面试,其实本质上就是和面试官一次平等的技术交流,只不过他想看看对于同一个知识点,你的理解能否给他带来新的惊喜。
最后一句,简单的目标+平常心+脚踏实地,应该是我半年来的个人感受,找到工作于我而言,只会是一个新的开始,期待以后与神秘的大牛们公事。