中通快递 面经

第一次写面经,不清楚的地方还望海涵。

timeline:

  1. 10.18 一面(愉快)
  2. 10.23 二面(极度不愉快)
  3. 二面当天约HR。。。

1 一面:

  • 自我介绍
  • 实习项目,生产问题
  • 实习项目方面:俩个完整的批处理设计,通过设计模式解耦并整合同类批处理功能,完成一个业务块的设计复用
  • 生产问题方面:主要谈了业务底层sdk设计的kafka多线程并发消费导致的次序问题改造和一个接口的幂等改造
  • HashMap 源码
  • 二次幂如何取的?为什么要取?
  • 散列法
  • 扰动函数
  • 扩容原理
  • AQS 源码

因为HashMap问的比较多,这次AQS我就一股脑全说了,主要是以下几点

  • state 在多种实现的用法区别、阻塞队列
  • ReentrantLock 中 Sync是如何实现的,公平和非公平区别就在 tryLock 的时候 state == 0 时候,公平还要判断hasQueuedThread
  • 如何基于AQS扩展,简单谈了下限流小玩具

讲完后没追问直接聊框架了。

  • Spring 源码
  • 用 ClasspathXmlApplicationContext 启动容器,执行流程是怎么样的?
  • refresh 容器时,有一步预实例化的操作,简单讲一下有哪些操作(主要谈了 Factory Bean 的问题 和 SmartFactoryBean 接口可以配置迫切加载)
  • Spring Boot 源码(问这个是因为,我说完Spring说了我最近在做渐进式手写 Springboot 的教程,已经写了10章了,正在写容器刷新部分)
  • BootstrapContext 的作用
  • 启动时候监听器是怎么实现的(SpringApplicationRunListeners + SpringApplicationRunListener + Spring 的简单事件多播器 + SPI加载
  • 启动配置的环境变量和配置文件的优先级,讲了配置传入和解析简单讲了讲(这块缺失没仔细看,感觉没啥意思)
  • 常用八股:自动配置的实现

和一面面试官聊的很愉快,面试结束没多久就约了二面,然后md就奖励了我那个比。。。

2 二面:

当天面完气得很,主要分为俩部分。

  • 实习项目 + 动不动宕机 (一条链路,前面宕了、后面宕了、中间宕了怎么处理。。。就这样扯皮了20分钟)
  • 八股文:
  • Mysql Next Key 锁
  • Mysql 索引下推
  • 问我看过 ConcurrentHashMap 没,RESIZE_STAMP_SHIFT 的作用是啥,我说我不会没仔细看过这个,然后又问了三遍,最后说:啊你没看过啊。
  • 还有一些Redis的简单八股:红锁啥的

很无语的一次面试,可能看文字大家看不出我当时的无语。。

面完没多久就约HR面了。。不过听说钱不多,不准备面了,现在实习的公司也还可以。

全部评论
这是面试几年开发经验呢
点赞 回复 分享
发布于 2024-03-17 12:31 广东
大佬近年中通要多少合适啊,怕被挂掉
点赞 回复 分享
发布于 2023-11-04 16:51 上海
太强了,有些名词都没听过
点赞 回复 分享
发布于 2023-10-27 12:58 重庆
笑死了,我一面和你一样,哪个面试官动不动就说宕机。哈哈哈哈!
点赞 回复 分享
发布于 2023-10-25 22:19 河南

相关推荐

头像
09-17 15:14
已编辑
小红书_广告投放_后端开发
好的,这是一份根据你提供的对话整理的Java后端开发面试经验(面经),还原了面试流程、技术问答和核心考察点。-----### **小米Java后端实习岗面试经验****面试时间:** 约25分钟**面试形式:** 语音面试-----#### **一、开场与项目经历深挖 (约10分钟)**面试官非常直接,在简单的问好和确认身份后,直接切入简历中的实习经历。**面试官:** 看你最近在XXX实习过,能具体讲讲吗?**我:** (介绍了自己所在的团队和业务)XXX**面试官:** 你在里面具体做了什么事?**我:**实习部分 省略布隆过滤器    缓存穿透    分库分表-----#### **二、Java基础知识考察 (约5分钟)**面试官通过在线聊天窗口打字的方式,开始考察Java基础。**问题1:字符串比较**面试官打出代码:```javaString a = // ... some string initializationif (a == "Hello") {// ... do something}```**面试官:** “这样写代码有问题吗?”**我:*** “有问题,这里应该用`.equals()`方法进行比较,而不是用`==`。”* (尝试解释原因)“`==`对于引用类型,比较的是对象的内存地址。而`.equals()`方法(在String类中被重写后)比较的是字符串的内容是否相同。”* *(自我复盘:当时解释得有点磕巴,一开始把两个的作用说反了,但很快纠正了过来。核心点答对了,但表达不够流畅。)***问题2:浮点数比较**面试官接着打出代码:```javadouble a = 2.0;if (a == 2) {// ... do something}```**面试官:** “这样可以吗?”**我:*** “我觉得这样应该是可以的。”* *(自我复盘:这是一个经典的陷阱题。虽然`2.0 == 2`在Java中会返回`true`,因为整数`2`会被自动类型提升为`double`。但面试官实际想考察的是浮点数精度问题。更严谨的回答应该是:‘对于简单的、可以精确表示的浮点数,这样做没问题。但通常不推荐使用==直接比较两个浮点数,因为计算机存储浮点数存在精度误差,应该使用一个极小的阈值(epsilon)来判断两者之差的绝对值是否足够小。’)*-----#### **三、算法题 (约10分钟)**赎金信 改编版, 在一个数组中找到只存在一次的数。-----#### **总结**这次面试整体节奏较快,问题由浅入深,比较典型。1.  **项目经历是重点:** 面试官非常关注你在实习项目中具体做了什么、遇到了什么问题、如何解决的、以及最终产出了什么价值。能够清晰地表达出项目的\*\*背景(Problem)、方案(Action)、结果(Result)\*\*非常重要。2.  **技术深度:** 对于简历上写的技术点,如“Redis优化”,一定要准备好被深挖,能够讲清楚其原理、实现细节和选型考量。3.  **基础知识需扎实:** Java基础(如`==` vs `equals`,浮点数比较)是必考题,不仅要知其然,还要知其所以然,能清晰准确地表达出来。4.  **算法能力:** 对于经典的算法题,要能迅速给出最优解法,并准确分析其时空复杂度。在沟通思路时,尽量主动、完整地把整个解法流程和优缺点都讲清楚。
查看4道真题和解析
点赞 评论 收藏
分享
评论
10
27
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务