当前位置: 首页 > news >正文

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了,10月才开始找工作的我也算圆满结束秋招,今年秋招也不远了,在此祝各位准备找工作程序员们都能找到自己满意的工作,加油,好运早晚会来的!

相关文章:

  • Javascript中常用事件的命名
  • 阿里的面试官都喜欢问哪些问题?
  • 浅谈C语言中结构体的初始化
  • Spring AOP中的JDK和CGLib动态代理哪个效率更高?
  • 2016百度之星 - 初赛(Astar Round2A)
  • 为什么需要分布式配置中心?
  • 线上出故障了!我慌得一匹!教大家如何应对在线故障!
  • mysql远程访问cannot connect(10038) 问题解决的过程
  • Spring Cloud技术栈还没有学完!Hystrix又双叒叕停止更新了!
  • 2018年博客之星评选,需要您宝贵的一票!非常感谢!
  • 用私有构造器或者枚举类型强化Singleton 属性
  • 阿里分布式事务框架GTS(Seata)开源啦!
  • 完了!生产事故!几百万消息在消息队列里积压了几个小时!
  • [原创]java WEB学习笔记18:java EE 中的MVC 设计模式(理论)
  • 阿里巴巴的26款超神Java开源项目!
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • docker-consul
  • HomeBrew常规使用教程
  • IDEA 插件开发入门教程
  • Java 网络编程(2):UDP 的使用
  • js学习笔记
  • SpriteKit 技巧之添加背景图片
  • v-if和v-for连用出现的问题
  • 基于HAProxy的高性能缓存服务器nuster
  • 深度解析利用ES6进行Promise封装总结
  • 一起参Ember.js讨论、问答社区。
  • 用mpvue开发微信小程序
  • 用Python写一份独特的元宵节祝福
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (Forward) Music Player: From UI Proposal to Code
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net 路由处理厉害了
  • .NetCore 如何动态路由
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET关于 跳过SSL中遇到的问题
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET文档生成工具ADB使用图文教程
  • .NET性能优化(文摘)
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [C#小技巧]如何捕捉上升沿和下降沿
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用
  • [I2C]I2C通信协议详解(一) --- 什么是I2C
  • [IE编程] WebBrowser控件的多页面浏览(Tabbed Browsing)开发接口
  • [JavaEE系列] wait(等待) 和 notify(唤醒)
  • [leetcode top100] 0924 找到数组中消失的数,合并二叉树,比特位计数,汉明距离
  • [Linux] Boot分区满了的处理方法 The volume boot has only 0 bytes disk space remaining
  • [Oh My C++ Diary]用cout输出时后endl的使用