双非本科生的面试总结(Java岗):2个月,13轮面试,我拿到阿里、头条、美团offe

个人背景介绍:

坐标杭州,某双非科技大学本科毕业生,有过在网易的实习经历,虽然学校非985,也不是211,但在专业这方面还是很有自信心的,项目经历不多,但技术方面的知识基础还是比较牢固的,所以在自己的职业规划上,目标肯定是直指BAT大厂的。7月份下旬的时候,就开始投一些简历了,到目前为止,历时2个月,总共13轮面试,我终于拿到了阿里、头条和美团的offer(阿里巴巴4面+字节跳动5面+美团点评4面)。特在此分享一下自己的面经,希望能够帮助到各位正在面试的朋友。

阿里巴巴(共4面:电话初面+技术面+高管复试+HR面)

一面(电话初面,45分钟左右)
对阿里的意向度
介绍项目
session
java锁
gc原理
hashmap
listlink arraylist 区别
aop 原理
多线程
kafka 原理和容错
spark hadoop 原理
redis 同步机制
classLoader 机制
Http 协议
cookie的限制
HashMap key的要求
hashcode一致两个对象是否相等
JVM的原理

二面(技术面,考察技术知识运用能力,考察团队能力和学习能力,共45分钟左右)
讲项目
数据库乐观锁使用
状态机
如何解决状态机不对问题
如何分库分表
MySQL极限
HashMap源码
设计一个线程安全的HashMap
快排的实现,时间复杂度和空间复杂度
会什么算法
如何把项目变成SOA架构
Spring源码,最深刻的模块,aop用途
JVM内存模型
垃圾回收机制
项目中查看垃圾回收

三面(高管复试,涉及到的技术问题大多考察你个人的整体价值观,比较宏观的)
项目经历
Java中的链表
常见的GC算法
OOM出现在什么时候
你的SCI论文做了什么
抛了个部门业务的问题,让我给出解决方案(问题较私密,不说了)
期待薪资
介绍Redis
如何将数据分布在不同的Redis
有了解过取余算法?
spring的apo实现
字节码结构
浏览器输入网址过程,结合springmvc
你有什么问题

四面(HR面,了解一下心态、抗压能力,工作中的角色、未来大致的规划等)

字节跳动/头条(共5面:1轮电话面+3轮技术面+HR面)

一面(电话面:略)

二面(介绍项目+考察基础)
自我介绍
项目介绍
线程池相关
Redis熟悉吗?了解哪些数据结构?
跳表的查询过程是怎么样的,查询和插入的时间复杂度?
红黑树
Dubbo的原理
CAS的视线
有没有想问的

三面(问题开始深入一点)
自我介绍
你对服务治理怎么理解的?
项目中的限流怎么实现的?
具体怎么实现的?
如果突然很多线程同时请求令牌,有什么问题?
怎么解决呢?
如果不用消息队列怎么解决?
Dubbo的RpcContext是怎么传递的?
你说的内存泄漏具体是怎么产生的?
线程池的线程是不是必须手动remove才可以回收value?
那你说的内存泄漏是指主线程还是线程池?
可是主线程不是都退出了,引用的对象不应该会主动回收么?
那你说下SpringMVC不同用户登录的信息怎么保证线程安全的?
这个直接用ThreadLocal不就可以么,你见过SpringMVC有锁实现的代码么?
我们聊聊mysql吧,说下索引结构(说了B+树)
为什么使用B+树?
什么是索引覆盖?
Java为什么要设计双亲委派模型?
什么时候需要自定义类加载器?
我们做一道题吧,手写一个对象池
有什么想问我的?

四面(开始疯狂问算法)
印象最深的只有这一道变形的链表反转题,大致描述如下:
给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。(不能使用队列或者栈作为辅助)
例如:链表:1->2->3->4->5->6->7->8->, K = 3。那么 6->7->8,3->4->5,1->2各位一组。调整后:1->2->5->4->3->8->7->6->。其中 1,2不调整,因为不够一组。

HR面(略)

美团点评(共4面:简历面+2轮技术面+HR面)

一面(简历面:问了一些简历上的问题和项目)

二面(技术面)
讲一下项目的架构
说一下你熟悉的设计模式
有没有用过Spring,Spring IOC、AOP机制与实现,Spring MVC
怎么实现线程安全,各个实现方法有什么区别
volatile关键字的使用
可重入锁的理解
Synchronized是不是可重入锁
HashMap底层实现
怎么实现HashMap线程安全
JVM内存管理
HotSpot里面的垃圾回收器、类加载
进程和线程的区别
让我设计一个线程池
Mysql优化、索引的实现
算法题:
从10万个数中找最小的10个,时间复杂度分析(最大堆,考虑内存) 。
从一个有正有负数组中找连续子数组的最大和,时间复杂度分析(动态规划)
满二叉树第i层有多少个节点,n层的满二叉树共有多少个节点。

三面
MySql优化
说下项目做了些什么,架构之类的。
在collabedit上在线写代码(题目很简单是编程之美上的原题,一个有序的整数数组,输出两个数,使它们的和为某个给定的值。之前做过很快写好,然后给他讲思路。他继续问如果数组无序怎么办,先排序。)
两个文件,每个文件中都有若干个url,找出两个文件中相同的url(用HashMap)

HR面

你可能感兴趣的:(程序员,面试,Java)