本次面试分为两轮,一轮进行过之后直接进行下一轮,今天就只面了两轮,
等通知中,70%会挂,30%不会挂,前事不忘后事之师。

一、(一面)Spring 注解 @Resource 与@Autowired的区别和作用。
在spring中我们通过基于注解(Annotation-based)的配置,进行注入依赖。在java代码中可以使用@Resource或者@Autowired注解方式进行注入。虽然@Resource和@Autowired都可以完成注入依赖,但是它们之间有不同的区别

1.@Resource默认是按照名称进行装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。
2.@Autowired默认是安装类型装配注入的,如果想安装名称来装配注入,则需要结合@Qualifier一起使用。
3.@Resource注解是J2EE提供的,有两个重要的属性:name,type,而@Autowired是由spring提供的,减少系统对spring的依赖建议使用@Resource的方式。
4.@Resource和@Autowired都额可以书写在标注在字段或者setter方法上
二、(一面)spring如何降低耦合的??(这里是一个坑,上面的问题我回答是降低耦合,但是没有回答到点子上,结果自己挖了坑了。。。。)
在spring中降低耦合的关键在于将Bean的依赖关系抽取出来,而不是在于将bean的依赖关系放在哪里的环节(不是配置文件,也不是注解,这些只是实现过程的一个方式)
Spring的IOC,将基于实现类的耦合变成基于接口的耦合,可以避免硬编码造成的过度程序耦合,IOC控制反转就是将某一接口的具体实现类的控制从调用类中移除,转交给第三方(也就是spring容器),这就解决了如何确定该接口的实现类的问题。
Spring的AOP,在业务系统中除了要实现业务功能外,还要实现权限拦截,性能监控,事务管理,日志管理等非业务功能。通常的方式是将非业务的代码穿插在业务代码中,从而导致了业务组件与非业务组件的耦合。
面向切面的编程,就是将这写分散在各个业务逻辑代码中的非业务代码,通过横向切割的方式抽取到一个独立的模块中,从而实现业务组件与非业务组件的解耦。

三、(一面)Hibernate一对多的关系维护问题
一对多关系可以分为单向和双向的,通常是从主控类找到拥有外键的类(表)。可以通过cascade=”all”在一方配置级联操作类型,如果使用了inverse=”true”属性则关系的维护方由一方转到多方。
当cascade为all的时候:所有情况下均进行级联操作。
当cascade为orpnan:当被关联对象失去宿主的时候,将其级联删除。

四、(二面)持久层(Hibernate,Mybatis)框架中的N+1问题
这里我回答的不是很好,因为平时也没注意怎么进行sql优化,就不太了解N+1的问题。导致本知识点没有答的很好,总结一下。
这里指的是一方与多方(一对一)进行查询的时候不能一次性查询出两张级联表(一方表与多方表)的数据,级联查询的时候会出现发出两条语句的情况,如果要查询n条一方数据的话那么会级联查询多方表中的数据,这样就出现了N+1的问题。
在这种情况下只需要访问一方数据而不用访问多方数据的时候加载查询多方是比较浪费资源的。
Hibernate提供了两种检索策略延迟检索策略和迫切左外连接的检索策略。
1.延迟检索策略能避免多余加载应用程序不需要访问的关联对象,Hibernate3已经默认是lazy=true了,lazy=true时不会立刻查询关联对象,只有当需要关联对象(访问其属性的时候)才会发出查询请求。
2.迫切左外连接检索策略则充分利用了SQL的外连接查询功能,能够减少select语句的数目。
可以在映射文件中定义连接抓取方式。

或者使用HQL的LEFT OUTER JOIN.
或者在条件查询中使用setFetchMode(FetchMode.JOIN)
One one= (One )session.createCriteria(One.class)
.setFetchMode(“Many”.JOIN)
.add(Restrictions.idEq(one_id));

3.BatchSize:在One对象设置Size后,取出Many里的数据后,再发N/Size条语句取关联对象的数据,从而达到少发语句的目的。
4.一对一也一样,就不再啰嗦了

五(一面)、6L与5L水倒出3L升水。这是个经典的问题,当时智商不够用了,脑子一片空白,没有任何思路,心里想最多能倒两升水,结果就汗颜了。。。。
这里给出两种与面试官交流的解决方式,这三个杯子首先都是没有刻度的,只知道最多盛这么多水。
1.如果允许在杯子上画刻度的话(意思是在测量的过程中画,而不是提前画),
1.首先6L水倒满,然后倒到5L的杯子中,
2.此时6升水的杯子里只有一升水,然后刻上刻度,
3.将5L的杯子里的水倒掉,将6L杯子里的水倒入5L杯子里
4.将6L杯子里倒满水并倒入5L杯子里,此时6L杯子里剩两升水了,再画上刻度,此时已经能量出两升水了。
5.再将5L杯子里的水倒掉,将6L杯子里的水倒入5L杯子中,此时5L杯子中有两2L水
6.将6L杯子里的水再倒满,并倒入5L中。此时6L杯子里就是3L水,5L杯子里就是5升水了。
2.如果不用画刻度的话,则上面的流程基本不变,在演示的过程中已经发现不用刻度也能量出3L水了,结果没答上来。
说明,这里事先并没有查阅任何相关的资料来解读本题,事后也没有百度解决答案,我是在回来的路上想到的。。。。

六(二面)、N条线分割平面问题
本题与上面是一样的节奏,同样没有答出来,但是我推出了1….6条线能分割的平面,
N 1 2 3 4 5 6 ……
Sum 2 4 7 11 16 21 ……
这里可以根据1,2,3,,,,,n的和进行推导,结果公式为:
1,2,3,,,,,n的和为sum = n(n+1)/2;
而Sum 2 4 7 11 16 21刚好为上面公式的和+1,
所以推导出:sum = n(n+1)/2+1;
当然下面的也是对的:
Sum =( n*(n+1)+2)/2;
这里同样没有在现场给出答案,思考了三分钟后没有结果,就投降了。。。

七、(一面)网络OSI参考模型 TCP协议 三次握手 IP协议的作用 接收报文与发送报文和网络拥塞,,,后面好像不知道挖了多少坑了。。。。。
70%答出来了,但是在网络层和IP这块有点忘了
面试前没有怎么复习。。。。。

八、(一面,二面)操作系统的内存分配,虚拟内存地址的计算

九、(一面,二面)这是打到要害部分了,Linux基本还处于小白的阶段。只是会一点shell
Linux下文件的查找:
1.Find <指定目录> <指定条件> <指定动作>
2.locate 是find -name的另一种写法,比后者快
3.whereis 只能用于程序名的搜索
4.grep ….
只答了一部分。。。

 Chmod 的作用:修改文件的访问权限,利用chmod可以控制档案如何被他人调用,只能文件拥有者或者特权用户才能使用该功能来改变文件的存取模式。Chmod  777: 将一个文件的访问权限改为任何人都可以对该文件有读,写,运行权限Chmod  755: 设置用户的权限为1.文件的所有者可读,可写,可执行   ---72.与文件所有者同属一个用户组的其他用户可读可执行  --53.其他用户组可读可执行     --5Linux下文件的访问权限有哪些:读,写,运行(没答上来)读,写,运行三项权限可以使用数字表示,就是r=4,w=2,x=1如何打开一个文件:我回答的是使用vim,gredit ...,或者sudo gredit...对方好像满意了。。。

十、(一面,二面)实现互斥和共享的方式,从操作系统层面和进程层面,线程层面回答。

十一、(一面)如何查找单链表中的倒数第5个节点,我这里是简要说明思路,获得了面试官的认可,如果要写代码的话,千万不能忘了边界问题,如果链表节点数少于5个,或者链表为空的情况下怎么处理,还好没有挖坑。。。。
十二、(一面)二叉排序树查找
这里当场写代码,使用递归,字写的太丑了,,,,,,,还好对方能看懂
十三、(二面)查了我的oschina git的车辆管理系统。。。。。。。有坑自查。。。。。。
十四、(二面)你遇到的最大的困难是什么,你对培训机构出身有什么看法
调试bug的经历,遇到错误如何解决,百度还是看文档,这里我选的是百度,博客什么的,可能还是看文档稍微好点。。。。。

十五、(一面)项目
1.你最有成就感和挑战的项目是什么,或者你最满意的–《bug收录系统》
目前也只有这个最满意了,结果功能还没怎么全面,数据量不够,结果坑挖了不少
2.说明项目实现的内容
3.solr与lucene的区别
4.solr的索引结构
5.solr是如何存储数据的
6.solr与传统数据库有什么差别,优势是什么。。。。
7.如何进行solr查询。。。。
十六、(一面,二面)数据库方面
1.一个student(年级)表,里面两个字段:姓名和班级,如何查询班级人数大于40的人的班级,这里我写的sql太烂了。。。应该没写出来,当时脑子都乱乱的了,很久没碰sql了。。。。
2.你对数据库索引是怎么用的,怎么看的,这个直接说实话了,数据量没超过1000没有使用索引,即使我知道一点索引的优缺点。。。。好吧,坑,我来了。。。
十七、(二面)Top K问题
写代码的节奏。。。。。还好,面试官写了一个方法声明,c++方式的,我说我擅长java,这指针不是很了解,他说行,用自己熟悉的语言。。。字写的依旧不是很好,还好对方能看得懂。。。。。
使用双重for循环,结果代码有问题,还好我后来知道了,并添加了一个函数,但是最终的复杂度我觉得是o(n*k*k),但是面试官提示我有更好的方式,我想说是使用堆排序,但是他让我进行优化,在k个最大数字的数组中找到最小值,并覆盖,这里的时间复杂度是o(n*k),但是面试官说还有更好的方式,我就直接说堆排序,然后让写堆排序,结果,,,,,你懂得。。。
后来对方说,他这个N个数字很大,内存中装不下,我就说将这个大文件分割成n/10个小文件,在内存中维护一个最小堆,更新堆中的数据。。。他好像满意了。。。

这次差点又挖了一个坑,问对方是top k问题吗???。。。

十八、你还有什么要问我的吗?
总共面试80分钟,一面没敢问就直接出去等了一会儿,二面结束就问了一个问题:美团工作是在北京吗???对方回答是的,我就没再问了,估计70%要挂,这里总结一下吧,毕竟是第一次比较正式的面试,前面的两次面试都问的不多,可能与对方的面试结束后的沟通没有做好,另外一方面没有充分做好了解对方公司的准备,导致面试草草结束。

这里与众网友一起共勉,希望找到理想的工作,不辜负大学几年,读研读博的青春。。。。。

2015美团校招面试总结相关推荐

  1. 2015.11--360校招面试-后台C++开发工程师

    15年10月初参加的360校招面试-后台C++开发工程师,一共经历三轮面试. 开始是线上笔试,没过,去霸面给了机会面试. 一面 1.把项目和实习经历仔细的问了个编,其中的技术细节问的非常细. 2.计算 ...

  2. 2015美团网面试经验分享

    时间:2014年9月25日上午星期四     一面大约1h40min二面:40min 地点:中南大学科教北楼-301 职位:美团网算法工程师 结果:你先回去吧! 声明:不喜勿喷,仅供交流!谨献给面试被 ...

  3. 中国移动-北京移动2015年校招面试

    刚刚面试结束,总结一下,也希望可以带给大家一些帮助. 地点:北京市东城区东中街58号美惠大厦 带身份证.研究生学生证.本科毕业证及学位证.研究生成绩单.英语等级证书 证件一定要带齐全~ (技术岗) p ...

  4. 2015美团算法工程师笔试、面试之旅

    9月16日下午进行了美团笔试,8个大题+若干附加题(其它岗位选做),笔试题就不多说了,基本都是小算法题,写思想任何写代码,相信网上都能搜到.90分钟时间,我做了6题,时间实在是来不及,做完感觉进面试应 ...

  5. 非计算机毕业生2015互联网校招求职之路(拿到腾讯阿里offer)

    0. 写在前面 以此文,献给自己这两年的青葱岁月,感谢淘宝的朗英师兄和微博的旭爷.全栈pm莹姐姐.酷炫石女王.以及我逝去的头发. 参照Lucida的<9个offer,12家公司,35场面试... ...

  6. 别人的 阿里校招 面试总结

    版权声明:本文为博主原创文章,欢迎转载,转载请注明出处.觉得此文有用的,不嫌麻烦的,就留个言呐,或者点个赞呐,要是嫌麻烦呢,也麻烦点个赞嘛 https://blog.csdn.net/qq_40147 ...

  7. 美团java面试经历_美团面试经历+答案

    我认识不少在美团工作的朋友,从他们口中得知美团的技术面试,面试官都会从几百道基础题中随机拿十来道来考察应聘者的基础实力,只有过了这些基础才会有下文,我记得我的读者中曾经有一位分享过美团的面试成功的经历 ...

  8. 《非计算机毕业生2015互联网校招求职之路》2014-10-15

    0. 写在前面 以此文,献给自己这两年的青葱岁月,感谢淘宝的朗英师兄和微博的旭爷.全栈pm莹姐姐.酷炫石女王.以及我逝去的头发. 参照Lucida的<9个offer,12家公司,35场面试... ...

  9. 牛客网-精华专题-前端校招面试题目合集

    前端校招面试题目合集 501 HTML CSS 前端基础 HTML 浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层(structural layer).表示层(presentation ...

  10. 校招面试I 阿里、腾讯、字节这些大厂会问的4个问题

    校招面试I 阿里.腾讯.字节这些大厂会问的4个问题 本人近5年互联网运营经验,目前在移动支付领域央企做运营,跟阿里.腾讯.Facebook.字节.百度.京东.美团等超100家互联网大厂HR或员工都打过 ...

最新文章

  1. 从AI技术到用户需求:深思考CEO杨志明谈创业心得
  2. 国内大陆芯片70个细分领域重要代表企业!
  3. OpenGL实践系列之开篇: 坐标系
  4. 简述WinCE开发特性及忠告
  5. 关于web.xml3.0启动报错
  6. linux socket 多人聊天软件,Linux Socket编程---TCP实现多客户端的网络聊天室
  7. php解压功能的函数
  8. 【转】SASS用法指南
  9. NLP预训练之路——从word2vec, ELMo到BERT
  10. 数据字符集mysql主从数据库,分库分表等笔记
  11. Bootstrap按钮支持的元素
  12. java安装好了打不开机_门套安装是45度拼接还是直角好?当初不懂行,没有半年就重装!...
  13. 【linux】ubuntu更改mysql数据文件路径
  14. netmeeting 人数限止
  15. ARM汇编程序——加法
  16. LLVM IR / LLVM指令集入门
  17. 分享一点关于安装、使用达梦数据库的愚见
  18. 不要用 Mounty,一次惊险的数据恢复记录
  19. 如何启用Ubuntu 18.04的鼠标键
  20. 云计算与大数据课程学习笔记

热门文章

  1. 答题系统 html源码,答题系统.html
  2. 开源在线答题系统包含:在线考试,问卷调查,在线练题。架构为jdk7、spring4、spring-mvc4
  3. html数独游戏源代码,数独游戏求解程序(附源代码)
  4. TM4C123GLaunchPad教程四_时钟配置
  5. win10键盘鼠标怎么使用?(键盘操纵鼠标)
  6. android 休眠流程
  7. 魔兽争霸III冰封王座宽屏分辨率的修改方法
  8. linux学习日志,linux学习日记范文
  9. 怎么出家ajax假死状态,Ajax如何解决假死?
  10. ExtJS4 时间在edge中显示为0NaN-NaN-NaN NaN:NaN