2017年秋招各大公司后台岗面经总结-1

今日头条-头条后台岗三面面经

面经

可能没有记全

一面:
1.自我介绍,项目
2.网络模型以及各层协议,TCP拥塞控制
3.IO复用以及select,poll,epoll区别
4.指针和引用区别
5.数据库索引有哪些,他们的数据结构
6.复杂度为Onlogn的排序有哪些
7.LRU cache数据结构的实现,leetcode原题,但是stl规定只能用map,其他全都自己实现。(写了好久,主要是要自己写双向链表list不能用STL)

二面:
1.反复追问项目
2.之字形打印二叉树(简单)
3.长短URL相互转换方案(同笔试题,问我方案可以有多少不同URL,高并发怎么办,怎样建立索引以及怎样分布式),讨论了好久,感觉二面很纠结要不要我过去
4.其他忘了,二面记得时间挺久的

三面:
1.还是项目orz
2.同步问题
3.设计模式。java写线程安全的单例模式
3.输入一个数组表示柱状图一个柱子的长度,求柱状图中最大矩形面积。leetcode原题
4.二叉树的最长路径,边递归边求深度边求最长路径(剑指offer原题),这题饿着肚子脑子有些乱,好再后来写了出来没有栽倒✪ω✪

第一次分享面经,希望之后继续人品爆发!

作者:没有Offer就去死!!!
链接:https://www.nowcoder.com/discuss/37360
来源:牛客网

题目

  1. 网络模型以及各层协议,TCP拥塞控制
  2. 数据库索引有哪些,他们的数据结构
  3. 复杂度为Onlogn的排序有哪些
  4. LRU cache数据结构的实现,leetcode原题,但是stl规定只能用map,其他全都自己实现。(写了好久,主要是要自己写双向链表list不能用STL)
  5. 之字形打印二叉树(简单)
  6. 同步问题
  7. 设计模式。java写线程安全的单例模式
  8. 输入一个数组表示柱状图一个柱子的长度,求柱状图中最大矩形面积。leetcode原题
  9. 二叉树的最长路径,边递归边求深度边求最长路径(剑指offer原题)

总结

  1. 列表内容
  2. 列表内容
  3. 列表内容

  4. LRU cache数据结构的实现,使用LinkedHashMap,
    LRU, Least Recently Used 近期最少使用算法, 常应用于缓存中的数据淘汰, 其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高“。
    算法的定义: 近期最少使用算法,其实就是按照”近期最少使用”这个条件去淘汰相应的数据。
    参考链接0-讲解LRU思想
    参考链接1-优雅的实现

  5. 之字形打印二叉树(剑指offer原题),
    层次遍历二叉树,使用三个计数的变量,其中两个用于控制换行(分层),一个用于判断奇偶性(用于控制输出方向,从左往右或者从右往左输出)。
    思路及实现代码

  6. 列表内容

  7. 列表内容

  8. 非常好的一道题目,思路如下:
    蛮力法,超时。

    另外一种方法:
    我们认为长度越长且高度越大,则面积越大。
    现在,使用两个指针分别指向首、尾,这时它的宽度是最大的。
    可能还会出现面积更大的情况,只有当高度变大的时候,所以可以移动两个指针中的较小者,这样可以能会使高度增加以弥补长度变短造成面积减少的损失。
    一直移动两者中较小者,直到两者相遇,取各种情况的最大值即是最后的结果。
    实现代码

  9. 列表内容


今日头条-今日头条后端开发岗面经

面经

bxyybxx
编辑于 2017-09-03 20:29:41 回复7 | 赞 4 | 浏览1598 今日头条后端开发岗面经

一面:
自我介绍
介绍项目
写题:
两个栈实现一个队列、怎么优化
数组每一个元素找出数组右边第一个大于自己的数
实现LRU

二面
介绍项目
TCP四次握手
线程与进程区别
什么是线程安全
乐观锁、悲观锁
左连接、右连接
索引、主键的区别
写题:
给定n,将1,2,,n按字典序排列,求第k大的数

三面:
求两个有序数组前K大的数
拓展:求m个有序数组前K大的数
设计一个带有有效时间TTL的KV存储系统,包含set(key,value,ttl)、get(key)方法、怎么优化
循环有序数组的二分查找

作者:bxyybxx
链接:https://www.nowcoder.com/discuss/37316?type=0&order=0&pos=27&page=1
来源:牛客网

题目

  1. 两个栈实现一个队列、怎么优化
  2. 数组每一个元素找出数组右边第一个大于自己的数
  3. 实现LRU
  4. TCP四次握手
  5. 线程与进程区别
  6. 什么是线程安全
  7. 乐观锁、悲观锁
  8. 左连接、右连接
  9. 索引、主键的区别
  10. 写题:给定n,将1,2,,n按字典序排列,求第k大的数
  11. 求两个有序数组前K大的数,拓展:求m个有序数组前K大的数
  12. 设计一个带有有效时间TTL的KV存储系统,包含set(key,value,ttl)、get(key)方法、怎么优化
  13. 循环有序数组的二分查找

总结

  1. 列表内容
  2. 列表内容
  3. 列表内容
  4. 列表内容
  5. 列表内容
  6. 列表内容
  7. 列表内容
  8. 列表内容
  9. 列表内容
  10. 列表内容
  11. 列表内容
  12. 列表内容
  13. 列表内容

美团点评-美团校招内推电面

作者:evanXU
链接:https://www.nowcoder.com/discuss/37090
来源:牛客网

evanXU
发布于 2017-09-02 18:51:07 回复6 | 赞 0 | 浏览2260
刚面感觉应该是挂了
趁现在还记得,把问的问题总结一下。

面经

首先是Java虚拟机垃圾回收
Synchronized与EntrantLock的区别。
数据库事务隔离
LRU最近事物
快排
大根堆

大部分都能答上,但是回答的不够深入

题目

  1. Java虚拟机垃圾回收
  2. Synchronized与ReentrantLock的区别
  3. 数据库事务隔离
  4. LRU最近事物
  5. 快排
  6. 大根堆

总结

  1. Java虚拟机垃圾回收
  2. Synchronized与ReentrantLock的区别
  3. 数据库事务隔离
  4. LRU最近事物
  5. 快排
  6. 大根堆

美团点评-Java开发3轮技术面+hr面 面经(回馈牛客 总结自我) 精

面经

作者:小仇Eleven
链接:https://www.nowcoder.com/discuss/37792
来源:牛客网

小仇Eleven
发布于 今天 16:56:44 回复6 | 已赞 3 | 浏览1270 java开发3轮技术面+hr面 面经(回馈牛客 总结自我) 精

首先讲真,得感谢牛客的讨论区,感谢美团给我面试的机会,感谢帮忙内推的小伙伴,楼主渣渣双非学校小硕,投过简历无数,简历被挂无数,几乎都是石沉大海,所以每次面试都感觉弥足珍贵,本来上周面完就该发个面经的,但想想还是等定下来再写吧,今天收到了电话通知,所以过来发个贴,好了,废话不多说,不管最后去不去mt,先把面经弄出来再说。。。
技术一面:
一面基本上面的还算基础 没有过多的刁难 不过问题量特别大
1、自我介绍
巴拉巴拉,大致说了下实习和自己平时自己喜欢做的事情

2、我们先聊聊java基础知识吧,说出Object类的常用方法?
toString(),clone(),线程的三个方法:wait()notify()notifyAll(),hashcode(),finallize(),equals()
大致讲了上面这些个方法 并说了下各个方法的作用。。。。

3、刚刚说到object的常用方法,这些方法你应该都很熟悉吧,那你说说你对equal和hashcode这两个方法的认识?
主要谈了下两个的作用 以及 当重写equal方法时候一定要记得重写hashcode方法,然后面试官就问了为什么,然后就继续巴拉巴拉。。。
然后面试官紧接着问 两个对象如果equals那么这两个对象的hashcode一定相等么 回答是! 那如果两个对象的hashcode相等那么这两个对象是否一定equals?回答 不一定!理由其实 就是 关于 讲重写这两个方法的情况。。。。

4、多线程用过吧?写过一些demo,那你说说多线程之间的通信,回答用wait sleep notify notifyAll配合使用 然后就问 wait和sleep一样吗?回答不一样,然后巴拉巴拉谈了下,关于对象锁的释放,是否需要唤醒。。。

5、嗯,刚刚谈到了锁,一下面试官就扯出了锁,看你简历上ssh mybatis都熟悉,那你知道悲观锁和乐观锁吧?答知道,然后讲了下两个的区别以及应用场景

6、你平时数据库一般用的什么 mysql 那你说说在工作中一般用的什么数据库引擎 答 mysql默认的是InnoDB存储引擎 敢情面试官想给我使绊子来着,接着就让说InnoDB和MyISAM之间使用场景问题了,然后就就着这两种存储引擎的区别 以及 优缺点巴拉巴拉说了一通

7、平时是怎么处理事务的,讲下对事务的了解
巴拉巴拉。。。。

8、看你简历上讲了分库分表 谈谈两个的使用 以及 在工作中 怎么去设计
这里主要是结合自己实习的项目来说的

9、mybatis缓存 以及谈谈你们项目为什么用spring mvc+mybatis 而不用Hibernate?
主要是说说一级缓存 二级缓存 然后 讲讲mybatis相对于Hibernate来说的优点好处之类

10、项目里用到了redis 为什么用它?
巴拉巴拉讲了一通业务需要 缓存数据 实现会话缓存的机制之类

11、.java如何实现多态
讲了下重载和重写

12、谈谈java的垃圾回收机制
从java提供垃圾回收机制说起,谈到了回收时机 何时回收 以及几个常用的垃圾回收算法,然后面试官问了解G1吗,听过但没具体了解了,实话实说,就没再继续了。。

13、谈谈网页登录模块里记住我这个功能?
从session一直到cookie,巴拉巴拉说了下各自的实现原理 以及缓存机制。。。

14、谈谈三次握手四次挥手 以及为什么是三次 为什么是四次 一定要是四次吗?
巴拉巴拉 结合网络中 那两个图来就行了,肯定不一定是四次 具体原因 大家知道。。。

15、如果让你设计一个大型网站,你觉得哪些东西是需要考虑的 为什么?
巴拉巴拉 谈了负载 谈了缓存 谈了框架 然后面试官继续问 就这些吗 然后继续扯 服务器 接着扯 。。。。

16、数据结构学的怎么样 算法这块?
还行吧,一直有刷题(其实是最近才刷 想哭)
好吧 问的差不多了 今天到这里吧,这两天手机保持通畅,然后问我有什么问题要问的,然后我就问了团队,问了面试情况,问了招聘最后会考虑学校吗 实在没底 因为看小哥聊得挺好 所以才敢问的。。。。

技术二面;
1、三次握手四次挥手
(其实没搞明白为毛mt这么喜欢问这个问题 之前看面经好的童鞋提到了这个问题 还有就是没让自我介绍 我以为是要走过场了)

2、sql注入了解么
谈了下 注入的原理 以及登录功能模块中 sql注入的 实现

3、集合框架肯定经常用吧?
于是自觉的从Collection聊到list arrayList vector LinkedList set map HashMap hashtable都通通扯了一遍,语速太快 感觉就跟背书一样 面试官笑逗了,就说 小伙子背的不错吗,面试宝典没少看吧 我无语!!接着就继续说,你刚刚说的那些都是比较浅的东西,我问个比较基础的吧,你知道HashMap的数据结构和实现原理吧? 数组和链表的结合体 顺便谈了下底层数组Entry 实现原理这块 主要是说了下 hashing、put和get的实现过程,以及当遇到空值以及当两个键有相同hashcode值的处理。。。然后问我知道ConcurrentHashMap不 于是又讲了下这个和synchronizedMap的区别 以及 效率问题。。。

4、谈谈volatile
。。。。然后又问知道ThreadLoca不。。。。。

5、写代码:解决生产者消费者问题
用了Semaphore手写的代码 大概花了一些时间 跟面试官讲了下实现。。。

6、问设计模式,百问不爽的答单例模式 让说了四种单例模式的实现办法?饿汉式 饱汉式 枚举 然而我只说了这三种。。。

7、问了下java内存模型 讲了下垃圾回收算法
又是一通巴拉巴拉 比较了各个算法的优劣和问题之类的。。。再问G1,幸亏一面后来去看了下,于是说了下大概的认知。。。

8、Java内存泄露的问题
大致又扯了下垃圾回收 然而好像不是面试官要的答案 尴尬。。。。

9、谈redis和memcached
。。。。

10、用过NIO么,没用过(我是讲真话没用过 不敢说用过)跳过

11、聊get post,http状态码,http header
巴拉巴拉说了下自己了解的,不是很满意感觉。。。

12、讲ssh搭建
。。。。

13、谈spring mvc
。。。。
这讲框架的两个问题 就跟聊天一样 你一句我一句的。。。。

14、谈spring的事物管理
。。。。

15、谈线程池
。。。。。

16、你有师兄之类的在mt么 为什么想来mt
巴拉巴拉。。。。
最后没让问问题 没说下一面任何事情(以为挂了)

技术三面:
1、自我介绍+项目
。。。

2、怼项目,死怼,谈业务需求,谈遇到的问题
。。。。

3、还是项目,你在项目中做了以图搜图,你是怎么实现的,谈谈你的处理过程?
谈了下图像检索的认识 聊了下自己用的sparse coding算法 谈了下降维算法 说了一大通 不知道面试官挺懂没。。。。

4、讲下数据库优化
主要说了索引、数据库结构优化,然后牵扯出红黑树,让手撕红黑树,然而写不出来,讲了下大概实现。。。数据库结构优化主要讲了下在项目中做到的表拆分和分区。。。

5、谈谈tomcat服务器
巴拉巴拉。。。。

6、讲下sql的left join、right join、inner join
这个简单。。。。

7、谈spring的过滤
大致讲了下登录过滤的实现。。。

8、继续谈spring mvc的分层 以及问了些常用的注解
。。。

9、谈谈IOC
。。。。(又一送菜题)

10、连表查询:笛卡尔积通过什么连接得到sql
巴拉巴拉 谈笛卡尔积的实现。。。。

11、对‘a’,‘b’,‘c’,‘d’排序,排成指定的顺序
这个我不会。。。

12、算n个数内的质数的和
这个简单,用一个数组保存所有质数 然后计算数组的sum即可。。。

13、一个圆环上有n个点 a从任意一个点出发 到达下一个点都需要Ag能量,每一个点都有cg能量补给,假设a最初有Bg能量,问a最初Ag能量为多少能保证a绕圆环一周。。。
最后一个问题大致是这样的。。。。。

14、谈谈自己的学校
第一次遇到这样的问题,还是技术面里。。。。。。。

hr面:
1、why投mt

2、why投外卖配送bu

3、自己最想从事什么行业

4、为什么打算在上海工作,打算长期发展吗?

5、三个词语概括自己的性格

6、为什么读研?

(又一次遇到这个问题 第二次了 因为是工作的时候考研的)
7、换我来问问题了。。。。

大概想起来的就上面那些 技术面的比较深刻 就大概记录下吧 很多问题 回答起来估计要很多时间,大家参考参考就行 祝大家早日收到offer。。。。

题目

  1. Object(11个方法,重点是覆写equals和hashCode,浅克隆clone)
  2. 多线程,怎么实现线程之间通信?wait和sleep一样吗?
  3. 悲观锁和乐观锁,它们的区别和应用场景
  4. MySQL的数据库引擎
  5. 对事务的理解
  6. Java如何实现多态
  7. Java的垃圾回收机制,回收时机,常用的垃圾回收算法,G1
  8. TCP三次握手和四次挥手?为什么是三次,四次?一定要四次挥手吗?
  9. 设计一个大型网站,需要考虑什么?
  10. sql注入,举例登录功能模块中sql注入的实现
  11. Collection框架,List,Set,Map,Queue,ArrayList,LinkedList,HashMap,Vector,Hashtable,重点是HashMap的hash方法,put方法,get方法和resize方法。
  12. ConcurrentHashMap和Collections.synchronizedMap的区别
  13. 谈谈volatile
  14. ThreadLocal
  15. 代码模拟生产者消费者(使用ArrayBlockingQueue)
  16. 设计模式-单例模式
  17. Java内存模型(内存划分)
  18. JVM垃圾回收算法,比较各个算法的优劣
  19. G1
  20. Java内存泄漏问题
  21. NIO
  22. get和post,http状态码,http header
  23. 线程池
  24. 数据库优化(索引和数据库结构优化)
  25. 红黑树
  26. tomcat服务器
  27. sql 的 left join,right join, inner join
  28. Spring IoC
  29. 连表查询:笛卡尔积通过什么连接得到sql(笛卡尔积的实现)
  30. n个数内的质数的和
  31. 有什么要问的问题

总结


美团点评-美团二面

作者:jackfang
链接:https://www.nowcoder.com/discuss/37861?type=2&order=0&pos=3&page=1
来源:牛客网

jackfang
发布于 今天 20:56:05 回复6 | 赞 1 | 浏览643

面经

晚上8点接到美团的电话要立刻二面,一脸懵逼。

面试官主要问了一些基础的知识:
1:String类能否被继承
2:接口和抽象类的区别
3:Synchronzed的用法
4:http和https的区别
5:javagc()中年轻态和年老态的用法
6:get和post的区别
7:tcp和udp的区别
最后还问了参加没有参加什么比赛,最后又说这两台会安排我进行技术三面。希望这些可以帮到大家~

题目

  1. String类能否被继承
  2. 接口和抽象类的区别
  3. Synchronzed的用法
  4. http和https的区别
  5. javagc()中年轻态和年老态的用法
  6. get和post的区别
  7. tcp和udp的区别

总结


美团点评-三面被送走,写面经攒人品,希望被补录。。

作者:神蜗牛
链接:https://www.nowcoder.com/discuss/37819?type=2&order=0&pos=10&page=1
来源:牛客网

神蜗牛
编辑于 今天 19:10:47 回复5 | 赞 2 | 浏览1375 三面被送走,写面经攒人品,希望被补录。。

面经

两点去的五点结束,总共三个小时,二面问的时间比较短。。
还有部分问题想不起来。。
一面
TCP/IP三次握手,四次挥手画图解释
线程状态画图说明
单例模式,如何实现线程安全的单例模式 手写代码
linux常用命令知道哪些
100以内的随机数排序怎么做手写代码
数据库怎么优化–我记了概念非得深入问
怎么看慢查询日志
垂直拆分,水平拆分怎么做的等一系列
为什么数据库索引使用B+树
分布式缓存有没有用过
radis与memcache的区别
死锁,怎么解决死锁
银行家算法,怎么实现,手写代码
事务的四个特性
spring的AOP原理
代理模式的原理与应用
项目相关。。我做的敏感词过滤。。
(汉语的敏感词要做分词么。。我觉得不需要呀)
讨论一会分词什么的

二面
进程与线程的区别
java虚拟机
GC,full GC触发条件,分区
单例模式又问了一遍
手写两个代码
逆转单链表
两个字符串的最大公共子序列
http与https的区别
没错linux的常用命令又问了一遍
查看进程的命令
查看日志的命令
线程池的实现原理
项目中还用到什么模式

三面
项目相关
怎么设计表,设计模块,介绍自己做了什么,说说自己项目的亮点
设计一个实名认证系统,主要功能是对名字打分
(我说的几种他都不太满意)
项目问完就开始聊人生。。
什么一天怎么安排,给任务怎么去做
希望将来工作的团队是怎么样,工作是什么样
给一个项目怎么去准备怎么去做
对任务有没有计划表,会不会按照计划严格执行
接受实习吗
有什么想问的
我就问了他是什么部门,去了干什么,主要业务是什么
还问了soa的相关
之后就被送走了。。。。

题目

  1. TCP/IP三次握手,四次挥手画图解释
  2. 线程状态画图说明
  3. 单例模式,如何实现线程安全的单例模式 手写代码
  4. linux常用命令知道哪些
  5. 100以内的随机数排序怎么做手写代码
  6. 数据库怎么优化–我记了概念非得深入问
  7. 怎么看慢查询日志
  8. 垂直拆分,水平拆分怎么做的等一系列
  9. 为什么数据库索引使用B+树
  10. 分布式缓存有没有用过
  11. radis与memcache的区别
  12. 死锁,怎么解决死锁
  13. 银行家算法,怎么实现,手写代码
  14. 事务的四个特性
  15. spring的AOP原理
  16. 代理模式的原理与应用
  17. 进程与线程的区别
  18. java虚拟机
  19. GC,full GC触发条件,分区
  20. 单例模式又问了一遍
  21. 手写两个代码
  22. 逆转单链表
  23. 两个字符串的最大公共子序列
  24. http与https的区别
  25. 没错linux的常用命令又问了一遍
  26. 查看进程的命令
  27. 查看日志的命令
  28. 线程池的实现原理

总结


美团点评-美团点评面经(提前批)

作者:不可承受的生命之轻1
链接:https://www.nowcoder.com/discuss/37736?type=2&order=0&pos=13&page=1
来源:牛客网

面经

自我介绍
……

数据库考查内容:
解释数据库范式,索引(不懂)。写了个查询语句:题目是从grade表中找出每科成绩都大于80分的学生名字。

计算机网络:

画出来7层网络结构,解释数据链路层主要负责作甚,介绍TCP的三步握手,其中ACK主要是做什么用的。

操作系统:
进程和线程的区别,进程的调度策略,进程之间的通讯方式。

Java知识
HashMap和HashTable的区别,hashMap的扩容方法。

学习Java的方式?

ArrayList和Linkedlist的区别以及各自的试用场景,以及ArrayList的扩容方法。

数据结构与算法:
手写快速排序算法,并解释过程。

第二面(答的特别糟糕):
Object类有哪些方法,clone方法的深拷贝和浅拷贝的区别,wait操作和sleep的操作的区别。

画出线程的状态转换图。

访问www.meitu.com网站,从浏览器发出访问到返回页面的整个过程。

手写一个算法:从字符串中“aecbcda”找出不重复的字符组成的顺序子串“aecbd”,用最优的时空复杂度。

我的简历中有提到Elastic search被问到了,答的一塌糊涂,所以建议简历中别写自己不熟悉的内容。

备注
二面直接被拒了,但面试官很好,他提醒我以后找工作还需要做哪些准备。
Spring,mybatis, redis. 其中Spring不是单纯的理解AOP和IOC,还要知道是怎么实现的。
路漫漫其修远兮,吾且依旧要努力兮。

题目

  1. 进程和线程的区别
  2. 进程的调度策略(先来先服务FCFS,短作业优先SJF,优先级调度算法 ,高响应比优先调度算法)
  3. 进程之间的通讯方式。(共享存储,消息传递【包括管道通信】)
  4. HashMap和HashTable的区别,hashMap的扩容方法。
  5. 手写快速排序算法,并解释过程。

总结


声明:
本文所有的面经均来自牛客网。
感谢大佬们的贡献。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值