zoukankan      html  css  js  c++  java
  • 淘宝|蚂蚁|菜鸟|盒马|嘀嘀|饿了么面经(已拿多个offer)

    上一篇的同学拿到了bigo和腾讯的offer,这一次的分享来自两位同学的面试综合,他们分别拿到了菜鸟、嘀嘀、盒马的多个offer,由于面试的时间跨度时间太长,且面试的部门太多,只能回忆到具体的面试题,无法再具体区分出几面了,但是面试真题还是可以拿出来分享一下,且看正文。

    菜鸟&嘀嘀

    这些来自第一位同学分享的面试题,由于过于优秀,同时面试几个大厂都已拿到offer,他只能回忆到一些重点的问题。

    JVM内存溢出排查?

    根据他的描述,JVM内存溢出的排查是个必问点,基本上每个公司都被问到,要知道怎么利用jstat、jmap这些命令结合MAT等工具导出堆栈信息查看分析,如果没有实战的经验,最好平时可以自己模拟一下场景,看看具体怎么处理。

    网络编程相关的提问

    因为大家Java可能做业务相关的需求比较多,如果不是涉及到比如IOT这种和网络编程相关的话,确实不是很清楚,对于这块问题他直接回复不清楚,问题也不大。

    并发包相关问题

    JUC下的那些常见问题,ConcurrentHashMap、CountDownLatch等等这些都应该要熟悉掌握,面试必考点。

    线程池原理

    基本也是必问点,也比较简单。

    mysql索引,锁机制,隔离级别

    同上,这个比较基础,必须掌握的点,如果不是很明白,可以去看我的进大厂系列mysql的专题。

    Redis连环炮

    Redis连环炮,数据类型、缓存击穿、雪崩、穿透、热key、大key,哨兵、集群,同步机制都应该了然于心,具体可以看我的进大厂系列redis专题。

    有一个比较少见的问题,tomcat起两个war包,怎么识别哪个请求要给到哪个进程?

    这个问题同学没有回答上。(欢迎你留言给出想法哦)

    Linux的命令,比如怎么查看给文件按大小排序,主要是查看日志相关的技巧命令

    这个在上一篇的快手的面试也有,Linux相关的基本上就是这些了,对于日志的查询这块grep、tail等等这些要用的熟练。

    volatie内存屏障具体是怎么实现?

    关于JMM内存模型相关的知识点,必须要掌握。

    JVM启动参数有哪些,怎么调优,TLAB是什么,阻塞队列对比和选择

    JVM调优,根据实际场景举例,阻塞队列的问题上一个同学也碰到了,都是基础知识,应该掌握,TLAB这个稍微有点不常见。

    DDD的理解?

    对于阿里来说,很负责任的告诉你,基本上DDD是必问,但是这个基本上只要你有一定的自己的理解就可以了。

    Reactor模型

    这个问题,至少我在美团、饿了么、阿里多个面试中碰到过,基本也属于必问的问题。

    第一个总结

    第一位同学的面试题记忆深刻的就这些了,虽然不多,但是基本上也都覆盖到了高频出现的问题,参考价值还是挺大的。总的来说,DDD、Reactor模型可能大部分同学都不是很清楚,可以专门准备一下。

    蚂蚁金服

    CHM结构,线程安全保证,加锁实现细节

    ConcurrentHashMap7和8的区别,实现原理这些常考点。

    JVM内存结构,垃圾回收原理,GC配合策略,排查过程细节和调优方案

    还是一样的问题,JVM、GC、垃圾收集器,调优的方案。

    线程安全的本质?

    要说到原子性、有序性、可见性的问题。

    并发锁,AQS原理

    都不是难点,频繁问。

    ThreadLocal源码

    多次出现的问题,一定要看书。

    mysql 幻读,怎么加锁

    同样的问题,参考我的进大厂mysql系列。

    秒杀设计

    秒杀从流量过滤、缓存、异步队列、限流、降级这些方面说说就可以了。关于秒杀我的文章里面也写过了。

    亮点项目

    亮点、难点项目一般也都是一定会问你的,事先准备,如果项目实在没有亮点,可以从业务价值或者一些开源的项目角度来说说,都没有,咱就聊技术。

    淘宝

    介绍下项目,整体架构,主要功能

    嗯,还是项目,一般都是第一个问题,从项目入手聊技术。

    网络模型,NIO,netty

    关于NIOBIOAIO必须要了解。

    JVM,垃圾回收,调优,排查思路

    看到有多么频繁的出现了吗?第几次了?

    Redis为什么快?使用场景?过期策略?

    Redis连环炮,同上。

    RocketMQ 场景,如何保证不丢消息?

    面阿里可以多准备下RocketMQ相关的,因为无论是开源的ONS还是其他都是基于RMQ的。关于MQ可以看我的进大厂系列MQ专题。

    Spring Bean 生命周期

    常考点,可以看我的进大厂系列Spring专题。关于Spring相关的面试题其实很少就这么几个。

    线程池参数,执行顺序,场景?

    线程池原理,牢记。

    Mysql 存储引擎,索引

    基本上就说InnoDb和Myisam就行了,区别说清楚。

    饿了么

    CHM 和 HashTable

    还是老问题,就不说了吧。一般都会说到CHM7和8的区别,实现原理区别。

    JVM 垃圾回收的原理,GC 排查步骤

    第N次出现。

    volatile,synchronize

    一样的问题,这些问题都可以看我的进大厂Java基础系列。

    SQL 优化,事务隔离级别

    也是第N次出现了。

    MQ的区别以及选型

    要记一下,RMQ、Kafka、RabbitMQ这些区别,支撑的吞吐量,支持的功能等等。

    Redis 分布式锁

    关于分布式锁,除了基本实现之外,可能还会涉及到一个可重入的实现的问题。

    业务幂等实现

    就说自己的业务中幂等是怎么做的就好了。

    分库分表,MyCat 底层实现原理

    MyCat问到原理这个倒是不是很多见,分库分表的很常见,看我的面试专题系列吧。

    监控指标,业务分析,业务指标

    根据自己使用的监控系统来说,哪些监控项,为什么?告警策略是什么,指标,阈值。

    亮点业务,好的项目

    准备好自己的项目,必问。

    平时怎么学习的?看什么书?

    如果不看书的话,就别吹,一问就露馅。

    场景题设计:银行,人,卡,充值记录,怎么进行系统设计,怎么支撑高并发?

    这个场景题还比较简单吧,可以参考看看我的百亿级流量怎么处理。

    聊项目,聊人生

    这是最后一面的最后一个问题,不过当时状态不佳,回答的不好,估计就是因为这个错过了P7,泪奔~~o(>_<)o ~~

    盒马

    可能知道我其他BU已经到了终面,没怎么问基础,主要问的都是项目亮点,设计,发展之类的。

    总结

    第二位同学也是拿到了饿了么、盒马、淘宝的多个offer,很多人也许看了会说,啊,这很简单啊,我上我也行,不,我觉得你上你真不一定行,面试题写出来给你看和当场面试的感受还是不太一样的,很多细节的问题从罗列出来的知识点是体现不出来的。而且个人状态、情绪都会对发挥产生影响。

    关于这个我突然想到知乎的一个问题“你的编程水平从什么时候开始突飞猛进的?”,我想了很久都没想好怎么回答,就是突然回头发现自己之前怎么写的代码那么烂?包括现在都会回头看我为什么当时的逻辑是这样写的?好像,不管面试还是平时,其实都是靠着水滴石穿的功夫罢了。

    对吧,哪有那么多突飞猛进,岁月静好,不过是每天都在负重前行罢了。

    - END -

  • 相关阅读:
    CMake 从文件路径中提取文件名
    std::multimap 按照key遍历---
    Windows / Linux 一件编译zlib库
    C++ 11 可变模板参数的两种展开方式
    cmake 生成VS项目文件夹
    C++ 利用文件流复制文件
    利用 getsockname 和 getpeername 来获取某一个链接的本地地址和远端地址
    Windows 用VS编译libevent源码
    揭示同步块索引(上):从lock开始
    C手写一个多线程,供java调用
  • 原文地址:https://www.cnblogs.com/ilovejaney/p/14140109.html
Copyright © 2011-2022 走看看