个人背景介绍:
坐标杭州,某双非科技大学本科毕业生,有过在网易的实习经历,虽然学校非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
- 2怎么实现线程安全,各个实现方法有什么区别
- volatile关键字的使用
- 可重入锁的理解
- Synchronized是不是可重入锁
- HashMap底层实现
- 怎么实现HashMap线程安全
- JVM内存管理
- HotSpot里面的垃圾回收器、类加载
- 进程和线程的区别
- 让我设计一个线程池
- Mysql优化、索引的实现
- 算法题
从10万个数中找最小的10个,时间复杂度分析(最大堆,考虑内存) 。
从一个有正有负数组中找连续子数组的最大和,时间复杂度分析(动态规划)
满二叉树第i层有多少个节点,n层的满二叉树共有多少个节点。
三面
- MySql优化
- 说下项目做了些什么,架构之类的。
- 在collabedit上在线写代码(题目很简单是编程之美上的原题,一个有序的整数数组,输出两个数,使它们的和为某个给定的值。之前做过很快写好,然后给他讲思路。他继续问如果数组无序怎么办,先排序。)
- 两个文件,每个文件中都有若干个url,找出两个文件中相同的url(用HashMap)
HR面
- 略
此次的面试经历就分享在这里。另外,我还整理一些大厂面试真题(含答案)以及架构学习资料,有需要的朋友关注+私信【学习】即可免费获得!
需要资料的关注+私信【学习】即可免费获取!
需要资料的关注+加qq群:872961220 即可免费获取!
网友评论