2017年美团Java程序员开发,看我如何拿到offer

热乎的面经,昨天面的美团,虽然面完了HR面,但是感觉希望不大,希望能走运拿到offer吧。三面技术面面经如下:

一面:

中间省略掉大概几个问题,因为我不记得了,下面记得的基本都是我没怎么答好的。。。

1.了解SOA,微服务吗?

2.分布式系统如何负载均衡?如何确定访问的资源在哪个服务器上?

一.轮询。二.随机。三.最小响应时间。四. 最小并发数。五.哈希。

3.设计一个分布式负载均衡缓冲系统,如何快速定位到是那个服务器(使用key分段、一致性hash)

4.如何保证缓冲区和数据库之间的强一致性(使用加锁)

5.HashMap高并发情况下会出现什么问题,(扩容问题)

6.说一说在浏览器中输入一个url后,直到浏览器显示页面的过程中发生了什么(我主要说了DNS,然后他有接着问了DNS的细节,然后就是ARP路由,然后服务器处理,返回,浏览器呈现,获取html中的依赖资源)

7.字符串中句子的反转(比如ABC DEF,输出DEF ABC)(很简单,可以先反转整个字符串,然后反转单词,或者先将句子切分为单词,然后反转);

8.给任意二叉树的所有结点加next指针(这个有原题,也可以参考按层打印二叉树)。

9.用过反向代理吗?

二面:

1.进程间共享内存的方式有哪些?(8种)

2.linux下如何查看网络端口状态(netstat),如何查看内存使用情况(top);

3.ConcurrentHashMap如何扩容?

4.知道java的异常吗?

5.运行时异常如果不处理会怎么样?应该怎么处理运行时异常?

6.写代码:给你5000万个int,求出前1000个最大的数,有2G内存。(我刚开始以为5000万个int很多,还把G和byte的换算忘了,后来面试官指导才想起来。我的方法是维护一个1000的小根堆,然后遍历数组,总体下来时间复杂度是O(nlg1000))

7.给你n个不重复的整数,随机找出m个不重复的整数,要求时间和空间复杂度都是O(m)。(方法很简单,就是每次把取出来的数放到后面,只在前面的数组随机访问就可以了,时间复杂度是O(m),空间复杂度是O(1),不过我刚开始没有想到把选出来的放后面去。。。)。

8.对于SQL慢查询的优化?(主要是从查询语句和数据库表设计两个方面来考虑,查询语句方面可以增加索引,增加查询筛选的限制条件;数据库表设计的时候可以拆分表,设计得更细粒度。但是后来才发现面试官想要的就是查询大量数据的慢查询问题的优化。。。)

9.用过哪些容器?(tomcat)对比过Tomcat与其他服务器的区别吗?比如nginx?

10.用过动态代理吗?以后会经常用到的

三面:

1.自我介绍,说说你项目中的数据流向(画结构框图)

2.看过什么书?

3.说说深入理解JVM中印象最深刻的章节(我说了JVM内存模型,垃圾回收和类加载);

补充:还问了堆和栈中存的是什么?static修饰的遍历存在哪里?(方法区)

4.说说《Effective Java》中你印象最深的三条和你的理解

5.你觉得你哪一块只是最熟悉(我说了Java的基本数据结构)

6.那你说说HashMap的内部实现;

7.HashMap是线程安全的吗?(不是,ConcurrentHashMap是)

8.那ConcurrentHashMap内部是如何实现的?每个segment是个什么数据结构?(HashTable)

9.你的项目中用到哪些技术?(Spring)

10.说说你用了它的什么?(Spring IOC用的最多)

11.Spring的优点?Spring AOP的原理?Spring如何实现解耦合?

12.对链表了解吗?(我说是List吗)是,(了解ArrayList和LinkedList),那你说说他们的区别?

13.会做链表两个结点的交换吗?(链表反转吗?)是的,你写代码实现把。

14.再写一个,给你一个链表和一个整数k(k大于等于0,小于等于链表长度,链表长度未知),按k步长反转链表(比如1->2->3->4->5->6->7,当k=3的时候结果是3->2->1->6->5->4->7)

15.说说mybatis配置了xml过后是如何完成数据库操作的?

总结

1.三年以上java开发经验或五年以上互联网开发背景

2. 熟练使用springmvc框架

3. 掌握面向对象设计开发,熟悉常见设计模式

4. 熟练使用mysql进行应用开发,熟悉数据库原理及常用性能优化技术

5. 熟悉分布式,缓存,消息搜索等机制,有分布式系统开发经验,集群架构设计和使用者优先

6. 有责任心,有想法,热爱技术,喜欢钻研

7. 有较强的逻辑思维能力,善于分析,归纳,快速定位并解决问题

很多小问题都记不清了,这是我昨天下午回来就记录下来的,感觉自己也尽力了。

最后很幸运的拿到offer了,祝各位还在找工作的朋友都能找到自己满意的工作。加油,好运早晚会来的。

我特意整理了一下,有很多问题不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,用来回答这些面试题。很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:726610841,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

以上是对大型互联网名企面试题收集分享,分享给大家,希望大家可以了解什么是大型互联网名企面试题。觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持!

2017年美团Java程序员开发,看我如何拿到offer相关推荐

  1. 2017年秋招美团Java程序员开发,看我如何拿到offer

    转载自  2017年秋招美团Java程序员开发,看我如何拿到offer 本人是一名本科毕业非计算机专业的程序员,面了阿里,结果没过,最后面上了美团,热乎乎的面经,昨天面的美团,虽然面完了HR面,但是感 ...

  2. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  3. JAVA程序员必看的15本书

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  4. Java程序员必看的15本书的电子版下载地址

    Java程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺 ...

  5. java程序员必看书籍

    学习Java最痛苦的事情莫过于对未来职业方向的选择.尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起. 因此,作为初学者的你必须看完 ...

  6. 收藏|Java程序员必看的几本基础书籍和常用工具

    java程序员必看基础书籍和工具 1计算机基础 1.<深入理解计算机系统> 著名的CSAPP,从c语言到汇编语言到硬件再到操作系统,写得非常好.是一本能帮助深入理解计算机系统的书.基本上把 ...

  7. Java程序员必看的9本基础书籍推荐!

    互联网的迅速发展给IT行业提供了广阔的前景,很多IT企业为了更好的发展,不惜重金聘请软件开发人才以增强自己在市场上的竞争力.这也让IT从业人员薪资水涨船高,许多人纷纷转投Java开发行业.很多人学Ja ...

  8. Java程序员推荐看的书籍!

    Java程序员推荐看的书籍! <Head First Java> 作者: Kathy Sierra / Bert Bates 简介:<Head First Java>是一本完整 ...

  9. Java 程序员开发常用的工具(全)

    Java 程序员开发常用的工具 作为一名Java程序开发人员,可以的选择集成开发环境IDE(Integrated Development Environment)非常多,得益于Java是一门开源语言. ...

最新文章

  1. RequestDispatcher
  2. JDBC——基于Mysql的基本操作
  3. android studio设置Tab为四空格缩进
  4. scrapy框架爬虫文件配置
  5. Joomla css类后缀
  6. python实现Pandas电话数据分析
  7. Iphone 开发播放音频无声音
  8. SQL总结 学期前8周学习内容
  9. Google earth 生成研究区适量边界(研究区边界从哪来?)
  10. index ffs、index fs原理考究
  11. 转:通信十年:前辈对通信行业的分析与经历
  12. mybatis报错 Invalid bound statement (not found)
  13. 一个人并不寂寞,想一个人才寂寞:QQ空间情感日志
  14. python 上标_python – 使用上标的matplotlib刻度轴表示法
  15. c语言见习报告,专业见习报告(汉语言文学)
  16. AVA 代码覆盖率工具 JaCoCo-实践篇
  17. you-get下载神器的安装和使用
  18. T568A 与 T568B
  19. POJ-2251 Dungeon Master
  20. 鸿蒙+瑞芯微直播一体机方案 8K 8核CPU软硬件方案

热门文章

  1. 如何实现Linux下的U盘(USB Mass Storage)驱动
  2. 模拟量开环控制系统的组成
  3. PostgreSQL 大会与DBA培训交流记录
  4. Chrome插件安装的3种方法,解决拖放不能安装的情况,并提供插件下载
  5. 网络异常无法连接远程服务器,《Chess Rush》网络异常进不去怎么回事 无法连接服务器解决方法...
  6. 计算机协会游园活动方案,计算机爱好者协会建设策划方案
  7. Android仿微信通讯录
  8. 【BZOJ2144】跳跳棋
  9. 《CSS新世界》读书笔记
  10. linux ccid驱动下载,ccid驱动支持