• 最新版校园招聘进大厂系列----------(2)美团篇 -----未完待续


    📢📢📢📣📣📣
    哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝
    一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜
    喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜

    ✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我

    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
    ————————————————

    如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

     

    目录

    写在前面

    技术篇

     后端

    面试经验1:

    面经2:

    面试经验3:

    面经4:

    面经5(社招,可以了解)

    面经6

    面经7:

    面经8

    面经9:

    前端

    面经1

    面经2

    面经3:

    运营篇

    面经1

    财务管培

    面经1


     

    2022年是真的卷,985毕业的也不能随随便便拿一堆offer了,有的甚至在提前批都没获得面试的机会至今还没斩获offer😂

    在大环境不景气的背景下,的确找工作就变得难上加难了,不过我们始终相信打铁还需自身硬,只要你有足够的实力,准备充分,找一份好工作还是可以的。今天我就准备了阿里的近几年面试试题,供大家学习分享。

    写在前面

    由于大家相对来说面试经验相对较少,博主这里暂时就简单给大家提几个意见,简历要做的简而精,毕竟每一个面试官的时间和精力都有限,(这里说的是技术面试官)一般都是忙里偷闲进行面试,平时还会有迭代需求要做,同时还会有bug开各种无聊的会议,所以简历推荐大家写的简而精

    不要写一些无关紧要的东西。

    其次突出自己的重点优势,由于大家是校招,项目和实习经历相对较少,所以有项目和实习经历对于你们来说都是加分项,在写项目和实习经历的时候,也不要长篇大论,让人能看明白你做了些什么,突出项目和实习中的难点,你是如何解决这些问题的,这种解决问题的思路想法也是面试官非常关注的问题。面试官很有可能对你做的项目感兴趣,这样整个面试有可能就围绕这个项目和经历进行展开了。这里给大家说一个技巧,我们应该学习引导面试官,引导面试官问一下你自己熟悉的东西,学会引导他不问你不熟悉的东西,这样面试起来起码回很舒服,不至于一问三不知,陷入尴尬的场面。

    自己不会的千万别在简历上写,因为面试官和我们不熟悉,只能够通过简历来了解我们,所以简历上写的东西都有可能成为面试的重点。(由于技术开发人员一般是不健谈的,所以他们一般都问一下技术上的东西,喜欢一连串的问下去,直到你不会为止),所以自己只是涉及过一点的最好不要出现在简历上,如果写就写了解即可,这个面试官一般不会去深闻。另外不要写精通什么,因为面试官自己都不敢说精通这个(当然大佬可以忽略这个)

    最重要的一点是要诚实,不要说谎,当然有人在说谎这方面很厉害,几乎没有什么破绽,但是纸里包不住火,总有露馅的时候。所以如果我们不会的可以直接说对不起面试官这个我不熟悉,面试官也不会为难你,会换一个话题唠的。

    这里就简单写了一些面试的心得,后续再出一篇面试心得技巧指南的文章。

    这里整理了一些同学们的面试心得,如果侵权了可以联系我,我会删掉

    技术篇

     后端

    面试流程:

    • 一面(20分钟)
    • 二面(60分钟)
    • 三面(25分钟)
    • HR四面(30分钟)

     

    面试经验1:

    参考链接:美团面试经历,历经4轮2小时,成功拿下Offer - 知乎

    一面

    • 1、自我介绍

    说了很多遍了,很流畅捡重点介绍完。

    • 2、问我数据结构算法好不

    挺好的(其实心还是有点虚,不过最近刷了很多题也只能壮着胆子充胖子了) 。

    • 3、找到单链表的三等分点,如果单链表是有环的呢

    快慢指针,一个走一步,一个走三步。如果有环,先判断环在哪,找最后一个节点,然后用之前的无环的做法。

    • 4、讲一下项目的架构

    我重点讲了MVC。

    • 5、说一下你熟悉的设计模式

    我重点讲了单例、工厂方法、代理 。

    • 6、有没有配置过服务器啥啥啥

    这个我真不知道,都没听过呢,只能诚实说没有,毕竟都没法扯。 一面挺匆忙的,我估计面试官刚开完会还没吃饭呢。他说让我等,可能再找一个同事面我,可能就直接告诉我结果了。从一面面试官的声音和口吻,我判断他一定是个部门老大,问的设计偏多,后面hr告诉我他就是我要去的部门的老大。哈哈。

    二面跟一面比起来,二面面试官的声音听起来就像是搞技术开发的,果不其然,一个小时的纯技术电话面试!面的特别全面!

    1、Spring:有没有用过Spring,Spring IOC、AOP机制与实现,Spring MVC 其实我挺不想被问到Spring的细节的,框架这些我都没有复习不太记得了。所以我对面试官说Spring里面的一些比较重要的机制我理解的还不错,然后我用一个实际的例子把我对IOC、AOP理解讲了一下,他听了说对,理解的不错(难得遇到一个边面试边能给反馈的面试官,好开心)。 Spring MVC其实我用过,我就对面试官讲了我的项目中用到的Servlet,jsp和javabean实现的MVC,以及MVC各个模块职责以及每个模块是怎么联系到一起的,最后我补充了一句我想SpringMVC的思想其实跟这个是一样的(他说对的,嘿嘿有反馈真好) 。

    2、多线程:怎么实现线程安全,各个实现方法有什么区别,volatile关键字的使用,可重入锁的理解,Synchronized是不是可重入锁 这里我就主要讲了Synchronized关键字,还有并发包下面的一些锁,以及各自的优缺点和区别。volatile关键字我主要从可见性、原子性和禁止JVM指令重排序三个方面讲的,再讲了一下我在多线程的单例模式double-check中用到volatile关键字禁止JVM指令重排优化。

    3、集合:HashMap底层实现,怎么实现HashMap线程安全 我讲了一下HashMap底层是数组加单链表实现,Node内部类,add的过程,Hash冲突解决办法,扩容,三种集合视图。HashMap线程安全的实现方式主要讲了HashTable、ConcurrentHashMap以及Collections中的静态方法SynchronizedMap可以对HashMap进行封装。以及这三种方式的区别,效率表现。

    4、JVM内存管理,GC算法,HotSpot里面的垃圾回收器、类加载 JVM内存主要分为五个区,哪些是线程共享的,哪些是线程独享的,每个区存放什么。GC方面:怎么判断哪些对象需要被GC,GC的方法,Minor GC与Full GC。HotSpot GC算法以及7种垃圾回收期,主要讲了CMS和G1收集器。类加载:类加载的过程,Bootstrap classloader-ExtClassloader-AppClassloader,父类委托机制。

    5、进程和线程的区别 从调度、并发性、拥有的资源和系统开销四个方面回答的。

    6、HTTP有没有状态,我说无状态,怎么解决HTTP无状态 怎么解决HTTP无状态其实就是怎么进行会话跟踪,有四种方法:URL重写、隐藏表单域、Cookie、Session。

    7、Java IO,NIO,Java中有没有实现异步IO Java IO实现的是同步阻塞,它是怎么实现同步阻塞的。我拿了read()方法举例来讲的。NIO实现的是同步非阻塞,我详细讲了一下Selector中的select()方法轮询说明它是如何实现多路复用IO的。然后对比了一下他们的效率。面试官可能看我对这一块比较了解,又继续问我Java中有没有实现异步IO,我感觉好像没有,但面试官说有,让我想想,其实这里我并不清楚啦,所以我就对面试官讲了一下我对Unix中异步IO模型的理解,然后说至于Java里面有没有我真的不太清楚。(他居然笑了!说你理解是对的,Java里面有没有不重要!哈哈)

    8、前端会不会,Ajax是什么,Ajax实现原理 前端我只是会用一些js而已,用过jquery框架,问我Ajax全称是啥,我猜是异步的js和xml。Ajax实现原理其实我也不懂,我就只简单讲了一下它通过XMLHttpRequest对象进行异步查询,Ajax引擎在客户端运行,减少了服务器工作量。

    9、让我设计一个线程池 因为我简历中有写到我对多线程、并发这一块理解比较好。所以他老问这方面的题。这个问题因为我之前看过ThreadPoolExecutor的源代码,所以我就仿照那个类的设计思路来想的,详细讲了一下核心池、创建线程可以用工厂方法模式来进行设计、线程池状态、阻塞队列、拒绝策略这几个方面。设计的还算比较周全。

    10、讲几个设计模式,哪些地方用到了,为什么要用 单例模式,jdk中的getRuntime();工厂方法模式,ThreadPoolExcutor用到ThreadFactory;观察者模式:java.util包下面的Observable和Observer。最后主要讲了一下工厂方法模式的使用场景。

    11、Mysql优化、索引的实现 我从数据库设计优化和查询优化两方面讲的。索引B+树实现,InnoDB和MyISAM主键索引的实现区别,一个聚集一个非聚集。

    12、事务的隔离级别 四种隔离级别,可能会出现哪些异常,mysql中默认级别。

    13、有没有用过Hibernate、mybatis、git 这个简单讲一下就好,分别是干什么的。

    14、Linux 我说这个本科学过,但是很久没用,命令忘光了。他说没事,考你几个简单的:cd、ls、dir(真的是简单的)。

    15、算法题 从10万个数中找最小的10个,时间复杂度分析(最大堆,考虑内存) 。 从一个有正有负数组中找连续子数组的最大和,时间复杂度分析(动态规划) 满二叉树第i层有多少个节点,n层的满二叉树共有多少个节点。

    终于到我提问环节了: 1、你们是什么部门(他说是核心部门,大数据研发) 。

    2、我对高并发和负载均衡挺有兴趣的,但是我平时在学校也没有这个环境让我在这方面有所体验,那你建议我目前可以怎么学呢(他说这确实是不太好学,只能看些理论和别人的博客,以后工作中才能慢慢学) 。

    3、中间件具体是做什么的,是解决高并发和负载均衡吗(他说差不多是的,然后他说我们这个部门不是中间件,是大数据部门啊,我说恩我知道) 。 最后没啥问题了,他让我保持电话畅通。 这一面面完,口干舌燥,我一度怀疑他可能不知道我是在应聘实习生的岗位。有太多要总结的了,放在总结的地方一起讲吧。

    三面(25分钟) 面试官说是他是另外一个部门的,需要进行交叉面试。

    1、MySql优化 。

    2、说下项目做了些什么,架构之类的。

    3、在collabedit上在线代码,题目很简单是编程之美上的原题,一个有序的整数数组,输出两个数,使它们的和为某个给定的值。之前做过很快写好,然后给他讲思路。他继续问如果数组无序怎么办,先排序。

    4、两个文件,每个文件中都有若干个url,找出两个文件中相同的url(用HashMap) 这一面挺简单的,只是增加之前面试没有过的在线写代码环节,collabedit后来我才了解,像facebook一些互联网公司远程面试都会用这个在线编辑器写代码,就是文本文档写,没有提示,不能编译运行,跟白板写一样。平时练练手就好。

    HR四面(30分钟)

    三面面试官说他那就是终面,说我过了等hr联系我。万万没想到半小时后的hr面居然也是技术。

    1、自我介绍,都四面了还自我介绍?我还以为是单纯的hr面,所以介绍的都是我的性格和生活方面的,结果并不是。

    2、问项目,问的特别特别细,技术细节,还有遇到什么问题,怎么解决的,做项目有没有人带,怎么跟别人沟通的。

    3、数据库优化,如果数据库一个表特别大怎么办 数据库优化我就讲了之前讲过很多遍的点,他问一个表特别大怎么办:大表分小表,怎么实现:使用分区表。

    4、问研究生的科研题目,为什么选这个题,看了一些什么论文(细到问我那些论文是发表在什么期刊上的,作者是哪所学校的),为什么要选这个算法,怎么优化的,实验结果怎么跟别人作对比的,为什么比别人的算法好(一个个问题不断砸过来,我猜我说的那些专业名词他应该不太懂,只是判断一下是不是我做的而已。。)

    5、确定实习时间 这一面确实让我感到有压迫感,项目是本科做的,挺久了,一些技术细节上也没太总结,所以问细了我只能连想带编,嘿嘿。科研方面倒还好,上个学期都在弄这个,一些算法的实现和改进、对比都还记得比较清楚,回答的挺流畅的,可能这真的就是技术型的

    hr面吧。 好累,我不想再找实习了,不得不说美团的实习生面试跟正式校招拿offer一样隆重,被面四面下来,好累,这个部门也挺好我很满意,所以我不想再继续找了。到目前为止,Java基础、数据库、计算机网络、操作系统复习也都全面结束了。现在每天刷刷题,保持就好。接下来准备看看Tomcat源码,要进入新的阶段了,这里不是终点,加油。

     

    面经2:


    参考链接:美团面试分享_笔经面经_牛客网
     

    1、面试官介绍

    2、自我介绍

    3、问考虑java嘛,愿意转技术栈嘛?

    4、C++是自己学的还是大学课程?

    5、看大学成绩还不错,问喜欢哪些课?

    6、用过Linux操作系统吗?问了些操作指令

    7、管道了解吗?操作系统的管道指令了解吗?底层原理是什么?

    8、OSI七层网络协议?交换机工作层次?应用层常见协议及其端口?

    9、浏览器输入网址后,发生了什么?

    10、cookie和session的区别?

    11、面试官定义一个类,让回答一些问题,出要考察程序内存分区,内存对齐,内存泄漏等

    12、delete和delete[]区别

    13、STL源码看过吗?都了解多少?

    14、sort()函数底层实现

    15、hashmap扩容相关

    16、考了到简单的概率题

    17、写代码,K个一组反转链表 leetcode 25

     

    面试经验3:

    1.自我介绍,项目
    2.ArrayList,HashMap原理
    3.Java同步机制,锁机制,synchronized和volatile的区别
    4.Java中如何创建线程,线程池的原理
    5.static有哪几种用法
    6.了解Spring吗,说一下AOP和IOC
    7.MySQL索引结构有哪几种,为什么InnoDB用B+树,可不可以用红黑树,为什么不可以
    8.事务的隔离级别,MySQL默认哪种,如何做到可重复读,MVCC原理
    9.Redis数据结构,缓存雪崩和缓存穿透,分别可以如何解决
    10.如何保证Redis和数据库的一致性
    11.平常用不用linux,问了基本命令使用(查看进程)
    12.JVM运行时内存结构
    13.GC算法,如何区分新生代老年代,eden区和survivor区分配
    14.算法题,输出100以内的素数
    15.非技术问题,最近看什么书,有什么让你觉得印象深刻的地方
    16.非技术问题,你觉得自己有什么优点和缺点
    17.反问环节

    1.自我介绍,主要聊论文聊项目
    2.mongoDB和MySQL的区别
    3.mongoDB支持事务吗,事务的ACID,隔离性如何实现(锁),持久性如何实现
    4.项目里Redis有没有做持久化,如何实现
    5.算法,leetcode 648题
    6.String的一些用法
    7.最近看的书,研究生期间如何学习Java的
    8.你对美团的印象如何

    面经4:

    1 HashMap的put怎么实现,如何解决hash冲突。
    调用putval,计算相应hash码,然后初始化(默认64的capacity)或调用resize函数调整大小,判断bucket是否有值,若没有在数组初始化改值。若有则以拉链法(链表的形式)解决hash冲突,这里和ThreadLocalMap不一样,ThreadLocalMap使用的是线性探测法,接着将相应节点加入链表头部。如果超过8个元素会进化为RBtree,防止hash攻击。
    RBtree是怎样的数据结构,有什么性质?
    二叉树,有序的,四种性质。从而推得路径最长2n,最短n。复杂度为log2N.(此处省略n多话,感兴趣的同学请自行Google)
    RBtree什么时候会变色?
    旋转时,共有四种旋转方式。一般是为了保持平衡,如左边太长,右边太短这样。(打哈哈过去,具体记不清了)
    hashmap什么时候会调整大小?
    根据负载因子来搞事,默认为0.75。
    什么是负载因子?
    根据capacity来,举个例子,当capacity为100时,如果HashMap的ele的数量到了75就会resize,resize后的大小为原来的2倍,这样可以直接使用位运算得到原来的元素新的hash值。
    扩容存在什么问题?
    (楞了一会,发现应该是说多线程的情况)然后说了多线程会有死循环问题。如果要解决可以使用concurrentHashMap。

    多线程下容易出现resize()死循环 本质 = 并发 执行 put()操作导致触发 扩容行为,从而导致 环形链表,使得在获取数据遍历链表时形成死循环,即Infinite Loop


    为什么有死循环?(ps:此处要搞清楚了)
    扯了半天,发现不画图,只通过电话根本扯不清。然后说就是因为1.7扩容后链表会逆序,1.8不会,所以1.8没这个问题,1.7就是两个线程同时扩容,一个扩到一半,到另一个了开始并完成扩容,之前那个再继续,就会出现。(然后说小姐姐,有机会我当面画给你看,开个玩笑)
      8.你刚才提到concurrentHashMap,你知道怎么实现吗?
         1.7使用分段锁,分为16个,每个segment可以视为一个hashtable,然后一次一个线程只锁一个segment,减小了锁的粒度,提高了并发。1.7使用的是Lock的实现类,可重入锁来同步的。1.8使用的是CAS和synchronized。如果已有元素,需要解决hash冲突,会使用synchronized锁住相应的bucket,然后再添加,同样元素在八个以上会转化为RBtree。
      9.你提到Lock,知道哪些相应的锁?
       读写锁,可重入锁
    10.知道AQS吗,他的实现是怎样的?AQS可重入吗?
    知道,读写锁,可重入锁都是通过AQS实现的,AQS维护一个链表,并主要提供tryacquire和tryrelease方法。默认为非公平锁,此时当一个线程需要请求锁时...

    11.AQS如何实现可重入

    维护一个int类型的status作为计数器,同一个线程acquire就加1,release就减1.到0就释放锁。读写说则是将status分为两部分使用。内部维护一个shift变量做位运算的变化。。。(AQS可以看占小狼的blog或者并发编程的艺术)

    12.这个计数器的修饰符是什么
    volatile

    13.volatile什么作用
    指令重排序,内存可见性
    14、指令重排序指什么?指令重排序的好处是什么?如何防止指令重排序。
    编译器重排序,cpu重排序,内存重排序。好处是流水线技术,提高并发性能等。通过禁止编译器优化,以及汇编使用Lock信号,java中的cpp加入volatile等防止。
    15.内存可见性具体指什么?volatile通过什么机制防止

    讲了下JMM,以及计组原理中的三级cache,buffer,缓存行等。

    顺便扯了下c语言的volatile只保证防止编译器优化以及内存可见性的语义,而不能保证顺序性。然后是C11的acquire,release语义 接着回归java,扯了下内存屏障的实现与作用。(并发编程的艺术)然后扯了下#LOCK信号,包括总线锁,mesi的缓存一致性等。最后是先行发生的语义(语无伦次,不过基本点都讲到了)

    16.synchronized内部分为几种锁,他们的使用场景是什么
    偏向锁,轻量级锁,重量级锁(又有自旋锁等),然后详细讲了实现和使用场景(周志明的书和并发编程的艺术都有讲,此处省略)。

     17.nio用过没有

    没有,讲了下自己准备学习netty,然后谈了下c语言的nio,包括Nginx和redis的多路复用,然后讲了下select和epoll的区别。以及epoll的优点和实现。然后设想java里的nio应该也是映射到epoll里面。

    18. 操作系统调度进程有哪些算法?

    优先级,时间片,FIFO,最近deadline什么的。

    19.Redis有几种持久化方式?

    四种,2种被废弃,比如磁盘交换。目前主要使用rdb,aof。rdb属于物理备份,aof属于逻辑日志(逐行追加)。然后又讲了aof重写。rdb和aof的配置。以及aof的rewrite机制。

    18.Redis分布式的实现方式

    (此处省略,Redis的设计与实现有详解)

    19。 数据库特性
    ACID,顺便分别提了下实现原理

    20.具体讲下隔离性。
    四种隔离级别和实现方式

    21.如何理解一致性?

    说了下单个事务的一致性,以及分布式一致性。

    22 一致性的三种级别
    强,弱,最终一致性

    23,持久性的实现方式

    redo,同时使用insert buffer等方式。

    24. 问了下希望base在成都还是北京

    25. 结束,有什么问题吗?

    面经5(社招,可以了解)

    技术一面:
    一面基本上面的还算基础 没有过多的刁难 不过问题量特别大
    1、自我介绍
    巴拉巴拉,大致说了下实习和自己平时自己喜欢做的事情
    2、我们先聊聊java基础知识吧,说出Object类的常用方法?

    toString(),clone(),线程的三个方法:wait()notify()notifyAll(),hashcode(),finallize(),equals()
    1
    大致讲了上面这些个方法 并说了下各个方法的作用。。。。
    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。。。。

    面经6

    一面 电话

    1.  自我介绍
    2.  项目介绍
    3.  Redis介绍
    4.  了解redis源码么
    5.  了解redis集群么
    6.  Hashmap的原理,增删的情况后端数据结构如何位移
    7.  hashmap容量为什么是2的幂次
    8.  hashset的源码
    9.  object类你知道的方法
    10.  hashcode和equals
    11.  你重写过hashcode和equals么,要注意什么
    12.  假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
    13.  往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
    14.  Redis的持久化?有哪些方式,原理是什么?
    15.  讲一下稳定的排序算法和不稳定的排序算法
    16.  讲一下快速排序的思想

    二面现场

    1.  自我介绍
    2.  讲一下数据的acid
    3.  什么是一致性
    4.  什么是隔离性
    5.  Mysql的隔离级别
    6.  每个隔离级别是如何解决
    7.  Mysql要加上nextkey锁,语句该怎么写
    8.  Java的内存模型,垃圾回收
    9.  线程池的参数
    10.  每个参数解释一遍
    11.  然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
    12.  Nio和IO有什么区别
    13.  Nio和aio的区别
    14.  Spring的aop怎么实现
    15.  Spring的aop有哪些实现方式
    16.  动态代理的实现方式和区别
    17.  Linux了解么
    18.  怎么查看系统负载
    19.  Cpu load的参数如果为4,描述一下现在系统处于什么情况
    20.  Linux,查找磁盘上最大的文件的命令
    21.  Linux,如何查看系统日志文件
    22.  手撕算法:leeetcode原题 22,Generate Parentheses,给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

    三面

    1.  三面没怎么问技术,问了很多技术管理方面的问题
    2.  自我介绍
    3.  项目介绍
    4.  怎么管理项目成员
    5.  当意见不一致时,如何沟通并说服开发成员,并举个例子
    6.  怎么保证项目的进度
    7.  数据库的索引原理
    8.  非聚簇索引和聚簇索引
    9.  索引的使用注意事项
    10.  联合索引
    11.  从底层解释最左匹配原则
    12.  Mysql对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?
    13.  Redis的应用
    14.  Redis的持久化的方式和原理
    15.  技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些
    16.  说你印象最深的美团点评技术团队的三篇博客
    17.  最近在学什么新技术
    18.  你是怎么去接触一门新技术的
    19.  会看哪些书
    20.  怎么选择要看的书

    面经7:


    链接:20220824美团java一面_笔经面经_牛客网

     

    1.针对实习项目里的一个问题(主要是修复了一个bug,具体内容不方便写)

    2.问bug产生的原因

    3.问这个bug的代码为什么不做事务?

    4.让我给代码添加事务会怎么做?

    5.分库分表事务需要怎么做?

    6.分布式事务有了解吗?

    7.代码里有rpc怎么保证事务?

    8.数据库mysql表示时间的类型你知道有哪些?

    9.数据库的隔离级别听说过吗?

    10.redis持久化机制有哪些?

    11.threadLocal了解吗?

    12.threadLocal会导致内存泄漏吗?

    13.sleep()和wait()的区别?

    14.sleep(0)有什么用?

    15.线程怎么关闭?

    16.mq怎么保证顺序消费?

    17.消息产生积压增加消费者可以解决问题吗?

    18.bean是单例吗?

    19.@autowired 和@Resource的区别

    20.代码题,一堆字符串数组里找出出现次数前k的字符串,如果出现次数相同,按字符串字典序排序。空间复杂的O(n),时间复杂度nlog(k)。

    面经8

    作者:牛客926811635号
    链接:美团面试(C++)_笔经面经_牛客网
    来源:牛客网
     

    部门用的Java,然后C++、操作系统、计算机网络一句没问,全都问的数据库,直接给整不会了…………
    8.19更新:已感谢信

    1. 面试官部门及技术栈介绍
    2. 自我介绍
    3. 为什么算法转开发
    4. 细说项目经历
    5. MySQL的MVCC?
    6. 快照读和当前读
    7. 事务的隔离级别,为什么需要四种隔离级别?不同隔离级别下存在什么问题?
    8. 在读已提交的隔离级别下,快照读读的是什么数据
    9. 在可重复读的隔离级别下,快照读读的是什么数据
    10. 做题:

    初始:k=1

    三个事务A,B,C,分别已开启

    B:updata k=k+1

    C:updata k=k+1 (Q1:k=?)

    A:select k (Q2:k=?) commit;

    RR级别下,Q1和Q2的值

    (3,1)

    1. 介绍一下MySQL的索引
    2. 覆盖索引和联合索引
    3. 做题:

    联合索引(a,b,c)

    select a>? and b=?;

    select a=? and b>?;

    select a=? and b=?;

    select a=? order by b desc, c esc; a可以,bc不可以,b降序不可以

    select a=? and b>? and b

    select a=? and b=? order by c esc;可以

    1. MySQL的锁,锁的种类
    2. 怎么理解表锁
    3. InnoDB什么情况下会加表锁
    4. 共享锁和排它锁
    5. 行锁,在什么情况下会加锁
    6. 行锁的共享锁和排它锁,在select的情况下,什么时候加共享锁,什么时候加排它锁?
    7. select后缀语法
    8. 行锁的类型
    9. 间隙锁?间隙锁中间可以有数据么?
    10. 间隙锁解决事务隔离级别的什么问题?
    11. A事务对空隙加间隙锁,B怎么才能达到互斥的效果?(B作插入操作的时候,使用插入意向锁达到互斥效果)
    12. MySQL默认隔离级别?解决幻读的锁机制?

    面经9:

    1.jvm内存的布局

    2.继续追问哪些内存区域需要进行垃圾收集?

    3.方法区里面放的什么?

    4.垃圾回收算法了解哪些?

    5.为什么要分新生代和老年代?(垃圾回收在新生代频繁,老年代反之,但是面试官和我说的好像说反了,他声音很小我说了嗯嗯,不会让他觉得我说错了吧,害怕)

    6 .栈为什么不需要垃圾回收 ?

    7.一个变量怎么判断分配在栈还是堆上?int和Integer分别储存在哪里?

    8.CopyOnWriteArrayList是为了解决什么问题?为什么用了这样数据结构?问了为什么要加锁?加什么锁?

    9.CopyOnWriteArrayList的底层?

    10.索引了解吗?说一下知道哪些数据库索引?

    11.为什么需要数据库的索引?

    12.那些字段需要加索引哪些不需要?

     

    前端


    面经1

    1、自我介绍

    2、聊项目

    3、css盒模型

    4、js原型

    5、能不能建一个没有原型的对象?

    (这个没答上来,查了一下是 Object.create(null)

    6、看代码,说输出

    复制代码

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    console.log(1)

    setTimeout(()=>{console.log(2)},0)

    new Promise((reject)=>{

        console.log(3)

        reject()

    }).then(()=>{

        console.log(4)

    }).catch(()=>{

        console.log(5)

    })

    console.log(6)

    // 1 3 6 4 2

    追问:微任务执行的时机是什么?

    7、给了两段代码,两个function都是让一千个元素的宽度增加100px

    fn1是循环1000次,每次是拿到子元素,然后再把宽度增加100px

    fn2是先循环1000次,把宽度取到放入数组中,再循环1000次,把各自宽度增加100px

    问,哪个效率高?

    (fn2效率高,因为fn1回流1000次,fn2只回流一次

    8、实现一个div从左到右移动的动画,可以改变它的left属性,也可以改它的transform属性,这两种方式有什么区别?

    (涨知识啦: 使用transform和left改变位置的性能区别

    9、了解http2吗?和http1有什么区别?

    (头部压缩、多路复用、二进制协议、数据流、服务器推送

    10、xss了解吗?怎么防范?

    11、讲一下对函数式编程思想的理解

    (又涨知识啦:前端:函数式编程简述

    12、测绘专业有计算机相关的课程吗?比如数据结构、算法、计算机组成原理(没有…

    13、问一个算法,了解过快排吗?怎么实现?

    (怕说不清,我直接手写的代码,没有编译器,直接在腾讯会议的聊天框敲的hhh

    14、https的原理

    15、验证服务器公钥是不是有效的,这步是怎么做到的?用到什么算法

    (继续涨知识:https中客户端对公钥证书的验证过程

    16、讲一下 tcp 的拥塞控制机制(没了解过…

    没学过tcp的课程吗?(没有…

    好吧

    (最后涨知识: 计算机网络——TCP的拥塞控制

    17、反问

    面经2

    1. input 中如何监听值的变化,事实上 onchange 无法作用
    2. 什么是事件冒泡和事件捕获,区别是什么。
    3. 什么是跨域,如何处理跨域
    4. 什么是节流与防抖,如何实现
    5. 网站的性能优化 (这个在网上有很多文章,但是要注意实践)
    6. 浏览器缓存原理
    7. 当输入 URL 时,整个过程是什么样的
    8. React 的声明周期是什么
    9. React 中关于 setState 的一个结果输出题
    10. React 中函数组件和普通组件有什么区别
    11. 什么是 render prop 的组件 (这个组件听说过,但是基本上没有用过)
    12. fiber 是什么 (这个仅仅只有听说过了)
    13. 关于模块分包的几个细节
    14. 有没有接触过 node,你认为 node 怎么样
    15. node 引入一个模块的过程是什么
    16. https 有什么用,原理是什么
    17. https 如何保证证书是可信任的
    18. amd 和 cmd 的区别,commonjs,esmodule
    19. 什么是函数柯力化
    20. virtual DOM 是什么以及是如何实现的
    21. dom diff 是什么
    22. get 和 post 请求
    23. 如何进行 CI 以及测试的,是否使用 ESLint
    24. Accept 头部的作用什么,如果服务器不支持怎么办

    关于技术面试,大部分属于基础,在网络上都能够找到答案,所以面试大厂基础一定要牢固!

    三面

    三面大部分都是一些主观问题:

    1. 才工作一年为什么就想着换工作 (三个月前去百度面试被问到,还没有工作一年为什么就想着换工作,后来想着工作一年后就没这个问题了,看来我太天真了)
    2. 你遇到过什么有挑战的事情吗 (这个一定得想好呀,没有也得憋出来一个)
    3. 你对未来的工作有什么样的期待

    三面的主观面试对我来说,比技术面更加紧张刺激,也可能是因为面试少的原因,不知从何处回答。对于主观题来说,面试前一定要做好充分的准备,另外要多面试才能克服紧张心理。

    对于主观题,可以参考山月同学的 技术面试题之主观题 列表,对于主观题有什么要做到心里有数。

    面经3:

    1.webpack的配置

    2.项目中element的引入

    3.this的指向,this的代码判断

    4.url的解析过程

    5.call,apply,bind的区别 ,以及用es5语法写出来

    6.写出loadsh中的bind的方法的实现

    7.将hello word变为helloWord

    8.js中数组的方法

    9.join

    10.sort

    11.含有promise settimeout async 的执行顺序

    12.如何理解前端工程化

    13.http tcp udp

    14.如何用bind 写出弹框点击别处取消

    15.传token header里和cookie里传有什么区别

    16.keep-alive的原理

    17.组件传值,手写emit  bus

    18.vue中的computed 值改变

    19.代码实现图片懒加载


     

     

    运营篇

    面经1

    一面(30+mins):
    1、自我介绍。如果有实习经历请重点讲实习。
    岗位匹配的知识和实习经历,以及自己在实习中表现出的踏实、发现问题并主动解决的能力。
    2、你在京东7fresh实习的主要内容。
    7fresh总部
    3、谈谈你对美团的了解。对小象业务的了解。
    美团小象和美团买菜、快驴进货。生鲜零售行业的发展前景,美团的优势,自己的建议,比如快驴进货深耕供应链。
    4、你对配送运营岗位的理解。为什么投递该岗位。
    5、你的优势是什么。
    专业实习+行业实习+文章资讯
    6、你的优点是什么。你的缺点。
    优势积极上进,案例举证。缺点自卑,反而踏实。
    7、你在7fresh有没有人带。
    8、你希望我从哪个方面帮助你支持你。
    9、你实习的收货。
    10、你觉得书本上的知识和你工作有什么区别。你在学校学的东西能应用到工作中嘛。
    11、你还有什么问题要问我的。
    ①您看到的情况,优秀的配送运营人员有什么样的特质?您对我的建议。②我入职前需要提前学习哪方面的知识和技能。

    二面(电话24mins+视频20+mins)
    电话面试:
    1、自我介绍。
    2、你在京东7fresh工作主要是做什么?
    3、在京东实习的时候,领导有没有说好好干,可以留任之类的事情?
    4、你说你本硕都是物流专业,那你在学校的核心课程有哪些?你学到了什么?
    5、你对供应链管理的理解。
    6、你的缺点是什么。
    7、你有什么问题。
    问了绩效考核,被怼了,别问这个。
    视频面试:
    首先面试官介绍了自己是配送这块的负责人,加试原因,看中实习生学习能力强和抗压能力两个方面。
    1、讲一下自己的学习能力以及抗压能力
    2、未来的职业规划。
    3、对生鲜零售行业的看法。
    4、你在厦门的时候有没有下载过朴朴超市APP。
    5、你投的物流运营和这个配送运营岗位的区别。
    6、你还有什么问题。
    除了综合素质以外,还需要哪些技能,比如数据分析

     

    财务管培

    面经1

    ? 一面(20min)
    1. 自我介绍
    2. 跨专业
    3. 社团活动
    4. 实际经历中遇到的比较大的困难;有什么帮助
    5. 职业规划(工作状态)
    6. 学的最好的一门课程
    7. 成绩排名
    8. 反问
    ? 二面(20min)
    1. 自我介绍
    2. 跨专业
    3. 重点询问了财务报销相关的实习经历
    4. 校园活动经历;有哪些能力方面的提升
    ? 三面(18min)
    1. 自我介绍
    2. 财务实习
    3. 对美团的了解
    4. 工作地点
    5. 反问
    ? HR面(25min)
    1. 地点
    2. 从事不同方向的考量(四大、国企、互联网)
    3. 职业考量因素排序
    4. 不同互联网大厂的考虑

    如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

  • 相关阅读:
    Redis 非关系型数据库学习(三)---- Redis 基础知识
    系统架构设计:17 论信息系统的安全性与保密性设计
    C++中volatile使用注释(①不被编译器优化,②多线程安全,③修饰指针或变量注意事项)
    医院为什么需要信息集成平台?有什么数据集成平台推荐?
    【PTE-day05 宽字节注入】
    MySQL常用语句(CURD)
    【Vue2 全局前置导航守卫】
    ethernet eth0: Could not attach to PHY
    一文速学-时间序列分析算法之加权移动平均法详解+Python代码实现
    【MATLAB第75期】#源码分享 | 基于MATLAB的不规则间隔数据插值实现时间序列数据扩充(更新中)
  • 原文地址:https://blog.csdn.net/qq_29235677/article/details/126585812