面经预告:阿里、网易、京东、多益网络。
面经不同的人问的问题很可能不同,不能押宝在这里,不过帮助大家用来做模拟还是不错的~以下按收到offer顺序列出
多益网络-平台研发
挺神奇的,流程上写的就一面我还以为写错了,连hr面都没有。。。
一面:8-17
自我介绍
简单介绍一下你最熟悉的项目 a) 主要做了哪些工作 b) 有做相关优化吗——(为了装逼说了很久)
编译型语言和解释型语言解释一下
手撕代码:输入数组,输出数组的所有子集 a) 说一下思路(因为涉及到回溯,说的有点乱,不知道那边听懂没) (让5-8分钟写伪代码,我因为leetcode写过原题,写太快而且写了完整的代码。。不知道那边会不会怀疑我作弊)
数据库增删改查语句说一下 a) 不用那么具体,说关键字就行
const知道吗——(知道是c++的常量关键字,不过不太会c++,熟悉的是java) a) 最熟悉的两门语言是哪两个 b) Java和python的区别——(这里扯了很久,还扯了比赛的事)
什么时候适合使用链表
说一下指纹识别的大概流程
最近有在做什么项目——(可能是能不能来实习的试探)
对加班怎么看待
今天就到这了,你基础很扎实,知识面也很广,过几天会有hr联系你谈其他的事情
Q——后面没有别的面试了么? A——这应该是最后一面 Q——刚才是口头offer吗? A——算是吧
网易-考拉-java研发
笔试之后,报销去杭州的路费,22号的面试,一共三面,一天面完,面完后关注的公众号会推送面试结果。
一面:8-22
先自我介绍吧
最熟悉的项目介绍一下(会挑某个问题细挖)
看你对jvm很熟悉是吧,介绍下java内存区域分配吧
那JMM知道吗,介绍下
垃圾回收的算法有哪些
为什么要分代收集
Minor GC过程解释一下
你刚刚说你对juc包比较熟悉,有用过线程池吗?怎么用的
说一下线程池有哪些参数
线程池的底层原理
死锁的原因,写一个简单的会发生死锁程序
对开源框架熟悉哪个?
看过源码是吧,那从源码层面解释下AOP
数据库平时用的哪个
MySQL引擎介绍一下
Inodb的索引数据结构?画一个简单的看看,说一下和b树的区别
使用索引要注意哪些问题你知道么
你说到最做前缀,那我考考你,对ABC三列建立索引,把能用到索引的条件都列出来。 这里我确定是“最左不能丢,中间不能断”,但是面试官一口咬定AC也能用,我心里想能是能用但是只能用A的,不能使用AC,但是没办法,僵持了一下后只能顺着大佬说。
MySQL怎么实现分布式锁的
选课系统需要那些表,你简单写一下
加入课程的得分那又怎么设计
现在再写一个sql,找出某一个课程中得分最高的学生名字
面对大数据数据库层有哪些方法
你自己试过分库分表么
现在一个业务需求:考拉要发行一个优惠券,但是发行量很大,需要分库,每张券都有自己的id和对应客户id,现在让你来设计,要怎么分库
http访问流程说一下
tcp三握四挥
算法方面,排序你知道哪些
把归并排序写一下
好了,不错,去大厅休息下等下hr会通知你
现在一个业务需求:考拉要发行一个优惠券,但是发行量很大,需要分库,每张券都有自己的id和对应客户id,现在让你来设计,要怎么分库
http访问流程说一下
tcp三握四挥
算法方面,排序你知道哪些
把归并排序写一下
好了,不错,去大厅休息下等下hr会通知你
回答都不错,不过这一面问的是真的多,一个小时整,。。 所以估计这面分数还可以,但是也导致下午的二面直接开启困难模式 (中午本来想去见识下猪场食堂的,但是。。人气太火爆,人是真的多!一个窗口排队十几二十米绝不夸张,于是我默默回到大厅啃奥利奥了。。
二面:8-22
自我介绍
熟悉jvm是吧,有没有自己调优经历
会用哪些jvm kit
如果一个linux在线项目经常发现full gc ,你会怎么样快速定位?——会一点
Jvm垃圾回收器有哪些
各有什么区别
他们怎么搭配的
G1的工作原理解释一下
它的gc root 有什么不同的地方
每个region是怎么知道自己是什么代的
年轻代的存活对象是怎么移动到老年代的
不是问晋升条件和内存担保,就问你怎么移过去的——不会
那CMS熟悉么,说一下为什么他采用标记清除还是1
看你数据库也挺熟(看到上个面试官提过的问题),你解释一下mySql几个引擎的区别
事务隔离级别有哪些,其中可重复读是怎么实现的
Mvcc的底层原理又是什么
知道Redis么,介绍下一般用它做什么
他常用的数据结构以及他们的区别
远程过程调用框架知道哪些
说一下调用过程
说一下dubbo原理——不会
http熟悉是吧,https的优化
http头中的cached属性解释一下
去大厅等一下吧,hr等会儿会通知你
二面面完之后心里很虚,这就是压力面哈,问的是真的深和偏,因为好几个问题确实不太会,以为自己gg了,然后出去后发现手机通知过了,总算杭州没白来,休息会儿等待hr面了。
三面+hr面:8-22
这一面是主管和hr一起的,前面主管问技术,然后就走了?hr接着问
主管:
自我介绍
依次简单介绍下你的实习和项目(中间偶尔有细问)
介绍下你的比赛
如果一个linux在线项目经常发现full gc ,你会怎么样快速定位? (妈耶,这不是上一轮刚问过么。。。我打算回去再查来着,吐血。。)——把知道的说了
系统负载过高怎么定位
这个问题进程不是java的又怎么办
看你项目都是单节点的,会分布式的么——不太会
最近在学什么技术
有什么想问我的么
Hr:
了解考拉么——(每个公司面试前我都有做足功课)
这么了解呢,那你也知道对于一个上升期间的部门,加班是无法避免的,你对995怎么看?——我!喜!欢!
你老家哪里的,家里哪些人
家里人知道你要来杭州么
第一次来杭州么,喜欢杭州么
平时怎么学习的
对工作氛围有什么要求么
你有什么要问我的么 ——能委婉地告诉我的面试情况么——emm,,没什么大问题,回去等通知吧
早上10点到的,出来都晚上6点了,也不知道那算不算口头,担心也没用晚上就和同行小伙伴去西湖转了一圈第二天就回西安了。
程序猿面试交流社区:839462919
京东-京东云-java研发-java研发
一面:8-7
一共40分钟,面试官是小姐姐,声音好听说话很温柔,过程中会时不时赞许你,让你更加自信。(貌似说是免了一轮简历面)
1. 介绍一个你最熟悉的项目; (1)项目中使用的什么框架; (2)解释一下这个框架; (3)这个项目中遇到的最大的困难,怎么解决的;
2. 数据库索引有哪些; (1)他们有什么区别;(2)索引采用的是什么数据结构;(3)B树和B+树的区别;
3. 有没有对数据库做过优化,列举一下;
4. Hashmap与hashtable之间的区别; (1)谈一下对线程安全的理解;(2)Synchronized的锁优化机制; (3)乐观锁解释一下;
5. Jvm的各个内存区域解释一下;
6. 垃圾回收机制解释一下;
7. 有哪些垃圾回收刷算法,他们有什么区别;
8. 算法中,快排和归并解释一下; (1)他们的算法复杂度分别是多少;
9. 了解哪些开源框架? (1)怎么学习他们的? (2)看过哪些源码
10. 最近有在看什么数,平时的学习方法;
11. 你对java各个版本了解很清楚是专门有去了解过吗?
12. 我问完了,你有什么想问的?
二面:8-20
1.自我介绍
2.说一下你的竞争力在哪
3.说一下你觉得技术含量最高的一个项目或者实习: Balabala..
a) 打断一下,mvcc的解释一下;
b) 怎么实现的;
c) 你知道哪些数据库引擎,说一下区别;
d) 继续刚才你说的; Balabala..
a) 打断一下,索引是怎么知道哪些索引需要优化的;
b) 有没有更好的方法;
c) Mysql日志有去看过吗;——没
d) 继续你刚才说的; Balabala..
a) 打断一下,你还知道哪些前端攻击,都介绍一下;
b) 他们的防御方法知道吗;
c) 会不会实现一个前段框架来判断前端页面可能存在的攻击;——不会
d) 继续你刚才说的; Balabala..
a) 打断一下,你说的数据库切换是动态的吗;
b) 那现在给你一个需求将你项目中的数据库切换改成动态的切换(不需要重启服务);——不会
c) 继续你刚才说的; Balabala..
4. 打断一下,你说一下线程安全问题好了(估计是觉得我项目太low了);
a) 为什么要注意线程安全;
b) 打断一下,我说得是底层原理方面,也就是JMM那;
c) JMM8个原子操作说一下;
5. 知道哪些锁优化机制
a) 除了锁升级还有吗?
6.知道分布式中间件吗
a)Redis的AOF和RDB解释一下;
7. 我问完了,你有什么想问的么?
Q:其实我基础比较好,很多面试官您都没问到。。
A:哦,我的问题已经问完了。
Q:呃、、听说25号就结束所有流程是吗?
A:是的。
Q:请问菜鸟网络对于应届生的要求,是更偏向基础还是更偏向应用?
A:emm。。。基础!
挂完电话心里一阵发慌,觉得是不是gg了,纠结了半个多小时问了下内推学长,说已经到三面了,才缓过来。。。
三面:8-24
对方电话先自我介绍是主管
自我介绍
项目介绍(问了蛮久)
Java垃圾回收解释下——(问的这么宽,那我就随意发挥了)
打断下,你看过源码是吧?那就问下一个
Java内存区域解释下
有哪些常量池
方法区在不同版本有哪些实现
类加载过程简单说一下
类能否多次加载——这里说明下,可以使用热加载实现多次加载
类加载器有哪几种
双亲委派模型解释下
能不能破坏,怎么破坏
findClass和loadClass有何区别
线程安全解释一下
Java有哪些方法解决这个问题
Volatile解释一下
Jmm解释一下
你对juc包很熟悉是吧,里面有哪些东西大概说一下
同步器主要有哪些,分别解释下
CountDownLatch和CyclicBarrier的区别,举个例子说一下
Semaphore你也看过源码是吧,那你解释下它的底层原理
集合类你常用哪些,说一下ArrayList底层
它和Map是同族么,那HashMap的底层原理解释一下
那你知道它和HashTable的区别么
工程上常用另外一种类来取代HashTable你知道么
说一下concurrentHashMap底层
可能存在什么问题,哦,你还知道1.8版本的,那你解释一下它用的CAS机制
它可能导致ABA问题,你知道什么是aba么,有什么解决方法
他还可能导致别的什么问题么
线程池用过么,说一下各个参数的含义
线程池的原理
java线程的各个状态——这里强调一下java线程的状态有6种和操作系统的5大状态不一样,大家不要被网上无脑转载的博客给毒害了。
那操作系统的进程和线程有什么区别,通信方式各有哪些
Spring-AOP解释一下,bean生命周期呢,这你也都看过源码是吧,那就问数据库吧
MySQL几个引擎区别
事务隔离哪些
Mvcc介绍
嗯,今天就到这里吧,你的话应该没什么问题了,你能提前来实习么?
有什么想问的么?
get主管的口头offer,很开心~但是面主管之前接到一个电话说西安有有现场面也得去参加下,但是依然有点担心现场面发挥不好把口头offer泡汤了。(从这一面可以看出懂源码的重要性)
四面:8-26
四面和hr面都是那天的现场面。
由于回来的时候也接到hr的口头肯定,所以回来就开始躺尸了,过了好久才总结,很多问题都给忘了。。。。这里主要说几个印象深的
自我介绍
实习、项目介绍(+细问)
正常挖基础,挖了蛮久
手写快排
手写一个死锁程序
一个链表,已经排序如何快速定位到中位数
一篇文章获取出现次数最多的字母
如果是单词呢
如果是一本书呢
如果是要在上亿个号码中找出出现最多的呢,说出你的思路,把你能想到的方法都说出来
秒杀系统怎么设计
最近在看什么技术书(面阿里当然说阿里出的那几本书,其实是真的在看,很不错:李智慧老师的《大型网站技术架构》、许令波老师的《深入分析Java Web技术内幕》)
说一个你可能不太舒服的问题,这个问题不算面试内,看得出你很聪明也很努力,但是你也要知道相对于这些东西,那些计算机出生的研究生们可能比你基础要更加扎实一些,比如计算机内部的原理什么的,你有考虑过这个问题么?
你有什么想问我的么?
面完后,做到一边等hr面,问一下旁边人,说好几个人要么只免了hr要么只免了技术面就都让回去了。。。心想,这么猛么,刚才回答的还可以吧,应该会让面hr的吧。。。
hr面:8-26
也忘了很多了,主要是日常聊天,小姐姐全程微笑,聊得很愉快,聊得很多,得有40多分钟,也说几个印象深的问题吧
自我介绍
实习、项目介绍(主要了解开发规模)
比赛介绍(因为是队长,所以问了下任务分配)
日常聊天
你了解菜鸟网络么——(甚至把我报的云仓部门都说了个清楚)
哇,你是有亲戚朋友在这个部门么
那你知道阿里的一些不好的传闻么,你有什么看法,比如关于我们hr的你知道么——2015年的“拥抱变化”
看不出你对阿里的价值观还了解这么多,平时有关注阿里的技术发展么
平时有自己的一套学习方法么
自己觉得自己是怎么样一个人
周围人,同门,队友怎么评价你的
家里哪些人
和父母关系怎么样
知道父母生日么
父母知道你想来阿里么,父母怎么评价阿里的
有女朋友么
怎么分手的方便说么
去过杭州么,评价一下杭州
目前手上有哪些offer
有什么想问我的
问完后貌似除了一个在面技术就剩我一个了,我连着面了两面的时间他们一共就一个技术专家和一个hr就面完了其他10多个人么。。。。他们让等了一下,然后另外一个男hr告诉我回去等结果,最迟9月第一周出结果,然后拍我肩膀小声说我应该没什么问题,不要太担心,再见~
程序猿面试交流社区:839462919
京东-京东云-java研发
当时已经和阿里内推学长确认过已经在录取名单里,所以后面都没记,现在才总结(已经过去大半个月了),不过京东问的问题都很基础,没什么特别的问题。
一面:
8月底貌似 全程基础,没什么特别的
二面:
9月2号 除了基础问了几个特殊点的
快速判断一棵树是否是AVL
将一棵树从右边看过去的节点依次从上到下输出
Tcp握手成功后,如果一方一方宕机,没有主动请求关闭,连接会一直保存么? 也都算常见,所以也都答上了
hr面:9月4号
正常聊天,最后有问一句你能不能一直实习到明年毕业?
——不能(是个研究生都还要写论文呢姐,。。这是故意要婉拒我?)
当天晚上收到offer
总结
以上就是我的秋招总结,说短也不短,差不多一个月,不过由于家里有事提前结束相对于其他继续收割的老哥们确实短了点。
最后选择的话,一直想去阿里,周围人也都知道,选择了自己的执念,希望未来能一起进步,互不辜负。
一个好的结果 = (前期的努力 + 面试和笔试的发挥)*运气, 既然运气不能自控,那就好好把握自己能控制的,越努力越幸运不是么。
前期努力和笔试没什么好说的了,面试很多人会紧张导致发挥不好,加之有些压力面文档问题很偏很容易就奔溃了导致后续问题都受影响。
在这里教大家一个诀窍——“把这场面试当作和朋友的一次饭后的技术交流”(觉得压力大的可以事先想象下面试官当年也是和你一样走过来的普通人,有喜怒哀乐,也被怼过,也出过丑。。。。逃)
最后再写个插曲,就是阿里四面现场最后那个问题“ 说一个你可能不太舒服的问题,这个问题不算面试内,看得出你很聪明也很努力,但是你也要知道相对于这些东西,那些计算机出生的研究生们可能比你基础要更加扎实一些,比如计算机内部的原理什么的,你有考虑过这个问题么 ?”
我的回答:
有,既然当初决定走这条跨专业的路,就没想过要后悔,您也看到了,在后台开发上我并不觉得我比他们有差,甚至我的热情和钻研精神让我在某些深层的源码理解上更加深刻。 有一句话,我一直十分认同,也把它作为我的座右铭,“没有绝对正确的事情,你能做的就是更加努力,这样才能让一切变得都是最好的安排!” 这并不是哪位名人留下的,是一位高中生当年高考失利后在日记本留下的一句话,后来他珍惜每一天, 从一个普通二本学校成功考研,读研后认清形势后决定跨专业找工作,伴随一路汗水与收获,所以现在他能自信地坐在您面前。
一次失败并不代表什么,关键是你失败后你做了什么,这代表了未来的一切。
“ 没有绝对正确的事情,你能做的就是更加努力,这样才能让一切变得都是最好的安排! ”
这句话也送给大家,祝大家一切顺利,共勉!