三面阿里挂了之后获得美团内推名额,四面拿下offer,分享经历!

目录

  • 01 面试经验分享(阿里落榜+美团面试题)
  • 02 面试美团,应该具备什么样的能力?
  • 03 如何快速提升自己,通过面试?

写在前面

成长背景:

先说一下哥们的个人成长背景吧。出身江南小镇,大学没有出省,毕业之后就去了上海,在一家互联网金融工作,到去年年底整整两个年头。辞职之后运气不太好,碰到疫情肆虐,现在快步入3月月末了,实际上早早就已经在面试了,截止目前的结果,三面阿里已经“落榜”,后来拿到了一个内推的机会,4面揽下了美团offer。

面试感受:

这次面试下来,哥们的感受只有一个,大厂不愧是大厂,阿里的面试还是挺难的,没有那么容易进,面试的几个环节下来,可以说是人才济济,哥们感觉还挺自卑的,不过哥们也不是一个不自信的人,所以面试美团还算顺利,美团的发展还是挺快的,整场面试下来还是相当精彩的!

文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等

一、面试经验分享(阿里落榜+美团面试题)

(1)阿里巴巴三面面试题(部分题):

  1. String和StringBuffer的区别
  2. gc的概念,如果A和B对象循环引用,是否可以被GC?
  3. Java中的内存溢出是如何造成的?
  4. String s = “123”;这个语句有几个对象产生?
  5. Error、Exception和RuntimeException的区别,作用又是什么?
  6. 列举3个以上的RuntimeException
  7. reader和inputstream区别
  8. hashCode的作用
  9. Object类中有哪些方法,列举3个以上(可以引导)
  10. char型变量中能不能存贮一个中文汉字?为什么?
  11. 列举几个Java Collection类库中的常用类
  12. List、Set、Map是否都继承自Collection接口?
  13. HashMap和Hashtable的区别
  14. HashMap中是否任何对象都可以做为key,用户自定义对象做为key有没有什么要求?
  15. interface 和 abstrat class的区别 是否可以继承多个接口,是否可以继承多个抽象类?
  16. 启动一个线程是用run()还是start()?多线程有几种实现?同步和并发是如何解决的?什么叫守护线程,用什么方法实现守护线程(Thread.setDeamon()的含义) 如何停止一个线程? 解释是一下什么是线程安全?举例说明一个线程不安全的例子。解释Synchronized关键字的作用。 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
  17. 了解过哪些JDK8的新特性,举例描述下相应的特性?
  18. 对sql进行优化的原则有哪些?
  19. servlet生命周期是生命与cgi的区别?
  20. StringBuffer有什么优势?为什么快?

(2)美团四面面经:

一面:

  1. 自我介绍
  2. 项目介绍及其亮点
  3. Java的8种数据类型有哪些?
  4. 问了Integer缓存数据的范围?
  5. 紧接着问了Object类有哪些方法?
  6. 问到这里然后拿出了一个题,面试官有小纸条,题目在上面,String A = "123"; String B = new String("123");,问生成了几个String对象?
  7. 由于提到了wait,顺带问了wait和sleep有什么区别?
  8. 由于还提及了hashcode,面试官接着问我,hashcode用在哪里?
  9. 果不其然,面试官说,讲一讲hashmap?
  10. 这里提及了hashMap是非线程安全的,面试问我为啥不是线程安全的,举几个例子?
  11. 我本以为要接着问ConCurrentMap,额,出乎我的意料,并没有问,可能觉得我hashmap准备的很充分,然后接着问了我JVM了解吗?
  12. 让我说意思JVM的分为哪几块?
  13. 由于提及到了内存溢出,面试官问我内存溢出和内存泄漏的区别?
  14. 这里问完我就去问了数据库,4大特性是啥,举个例子?
  15. 数据的隔离级别有啥,每个隔离级别举个例子?
  16. 接着问我计算机网络,问了我7层有哪7层?
  17. 接着问了我TCP在哪层,UDP在哪层,HTTP在哪层?
  18. 问到这里就结束了,然后面试官问我有啥想问的,我就问如何评价我的面试表现?

二面:

  1. 自我介绍
  2. 项目介绍,及其亮点介绍。
  3. 然后问了我集合了解吗,让我说话ArrayList和LinkedList的区别?
  4. 继续问我linkedList可以用for循环遍历吗?
  5. 介绍一下ConCurrenthashmap
  6. 来看看这道题,说着拿出来一个小纸条
  7. 然后问我单利模式了解不,写一个单例模式?
  8. 接着问了我虚拟机了解吗,介绍一些虚拟机的内存模型?
  9. 介绍一些你了解的垃圾回收算法?
  10. 问到这里,问了我你知道SurvivorRatio这个参数为啥初始是默认的8:1:1吗?
  11. 突然又问,二叉树了解吗,写一个二叉树的深度搜索遍历?

三面:

  1. 照例自我介绍和项目介绍;
  2. 上来就让我手撕一个单例模式
  3. 让我讲了讲代码是啥啥意思?
  4. 由于我的项目中提及到JVM,所以给我出了一个场景题,垃圾会收器中,标记清除多次后,由于采用的是标记清除算法,那么你觉得可能会出现什么问题?
  5. 这里提及到了full gc,问我,哪些情况会产生full GC,哪些情况产生minor GC?
  6. 除了你项目中的内存溢出问题,你还知道哪些关于内存溢出内存泄漏的?
  7. 然后给我出了一个动态规划的手写代码题,说来写个代码吧,大体是在n*m的矩阵方格中,找一个最大的正方形是几乘几的,有点忘了。

四面(HR面):

  1. 自我介绍啊
  2. 为啥想来美团啊,对美团了解多少?
  3. 心中的互联网公司排序
  4. 腾讯和美团选哪个啊?
  5. 自己的优点和缺点
  6. 还有什么问题

美团面试题答案+解析:

 

二、 面试美团,应该具备什么样的能力?

(1)扎实的基础知识:语言基础+计算机基础+算法+基本的Linux运维

想要面试一线互联网大厂,那么最基本的就要是熟练掌握基础知识。首先Java语言,需要你对集合类、并发包、IO/NIO、JVM、内存模型、泛型、异常、反射等都有一个比较深的了解,想要让自己更有优势一些,最好是源码部分也要读过一些。

社招岗位,大部分都是中高级职位,所以这部分的职位要求是比较高的,而且很重视面试者对虚拟机的掌握,比如类加载机制,内存模型等等,这几个方面在优化和并发编程中都非常重要。

至于算法,基本一点的就是排序和查找算法,另外对递归、分治也要有一定的掌握,推荐可以读《算法的乐趣》《Leetcode算法》

除此之外,计算机基础,如TCP/IP协议和操作的知识储备也是必须要有的,这些是作为一个开发的基础条件,也是大学的基础课。

(2)造轮子的能力:设计模式+各种缓存和数据库的应用+中间件技术+高并发和高可用的分布式系统设计

大型互联网公司每天要面对海量的请求,都会考察分布式系统的架构和设计,如何构建高并发高可用的系统,另外因为用户基数比较大,一个细微的优化可能会给带来很大的收益,所以对一些技术栈的掌握要求都比较深入。

比如对MySQL数据库,需要知道相关的配置和优化,业务上来以后如何分库分表,如何合理的配置缓存,一个经验丰富的服务端开发人员,也应该是一个称职的DBA。

对常用的开发组件,比如中间件,RPC框架等都要有一定的了解,虽然工作中可能用不到我们自己造轮子,但是掌握原理才会得心应手。这部分知识主要靠工作积累,推荐《大型网站技术架构与Java中间件实践》,还有曾贤杰的《大型网站系统架构与实践》,里面对大型网站的演变,服务治理和中间件的使用做了很详细的阐述。

作为业务开发人员,有必要了解压力测试相关的指标,比如QPS,用户平均等待时间等,可以帮助你更好的了解自己的系统。

(3)软性指标:快速学习的能力+良好的沟通能力+对相关行业的了解

除了基本的技术要求以外,大型的互联网公司招聘时,还会看重一个人的学习能力,鉴定这个人是不是值得培养的人。比如沟通习惯、逻辑分析能力等等,这些都包含在内,而这些能力是很难段时间去提高的,是长期的积累。

另外,对相关行业的了解程度也是能够加分的,比如互联网金融类的公司,就会更倾向一些拥有过支付和银行相关的系统开发经验的人。

三、如何快速提升自己,通过面试?

(1)了解主流互联网公司的技术栈,梳理好相关的知识点

很多人面试一线互联网,失败的主要原因其实就是对这些公司的技术找要求不了解,也不知道面试时会问到哪些方面?所以提前做一些功课是很有必要的,关于主流互联网公司的技术栈,我自己也有一些整理,这份文档能够很好地帮助你梳理这些技术栈,以及面试会问到的知识点。

 

(2)适当了解一些产品或设计的知识,以点带面,成为复合型人才

优秀的开发人员,多多少少都要拥有一些产品或设计的相关知识,有利于理解产品经理所要功能之外的根本需求,对产品的研发和开发更有帮助。

要成为复合型人才,对实战研究也要有所知,关于实战问题,我也整理了不少文档,如redis实战、SpringBoot核心笔记等。

  • 以SpringBoot 核心笔记为例:

 

(3)刷一刷历年来的大厂面试题(包括HR面)

 

写在最后

对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。

现在行动,你还来的及!

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-27 14:49
韶关学院_2022
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-30 15:34
广州大学_2023
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 1 评论
分享

全站热榜

正在热议