京东零售-平台营销中心后端开发实习生一面面经

面试概览

  • 公司/部门:京东/零售-平台营销中心
  • 岗位:后端开发实习生
  • 时长:44分钟
  • 面试形式:技术面

开场

面试官开场简单询问了对京东的了解,确认了实习时长和base地偏好。这部分比较轻松,主要是确认基本信息。

技术问

数据库相关

  1. 联合索引应用场景:
  • 面试官给出了一个包含A、B、C三个字段的表,建立了(A,B,C)联合索引,然后询问多个查询语句是否会使用索引:
Select * from t where a = 3 and b > 5;
Select * from t where b > 5 and a = 3;
Select * from t where a = 3 and b > 5 and c > 7;
Select * from t where a < 3;
Select * from t where a <= 3;
  • 考察对最左前缀原则的理解
  1. 索引失效场景:
  • 讨论了字符串转数字比较导致索引失效的情况及优化方案
  • 这部分刚好是"山羊算法后端训练营"数据库专题重点讲解的内容,系统学习后应对这类问题游刃有余
  1. Join查询:
  • 通过两个简单表T1和T2,考察LEFT JOIN在不同条件下的返回行数:
Select * from t1 left join t2 on t1.name = t2.name;
Select * from t1 left join t2 on t1.name = t2.name and t2.name is not null;
Select * from t1 left join t2 on t1.name = t2.name where t2.name is not null;
  • 区分ON条件和WHERE条件的差异

Java并发

  1. Java中的锁类型
  2. 线程池使用经验:
  • ThreadPoolExecutor
  • SingleThreadPoolExecutor
  1. 死锁概念及产生条件
  2. 线程与进程的区别

算法考核

手撕代码:现场使用IDEA实现反转链表。这道题是数据结构基础题,也是"山羊算法后端训练营"链表专题的经典例题,通过系统训练可以快速写出bug-free的代码。

面试感受

整体面试难度适中,重点考察数据库知识和Java并发编程基础。数据库部分占比很大,特别是索引和JOIN查询的理解深度。算法题虽然是基础题,但在IDE环境下手写还是需要扎实的编码能力。

准备建议

对于想应聘京东后端岗位的同学,建议:

  1. 深入理解MySQL索引原理和优化
  2. 掌握Java并发编程核心知识
  3. 熟练常见数据结构算法题

"山羊算法后端训练营"的课程体系恰好覆盖了这些重点,特别是数据库优化和算法题训练部分,能帮助求职者系统性地准备技术面试。训练营采用真题驱动教学,很多题目与本次面试考察点高度吻合。

祝各位求职顺利!如果对某些问题的具体解答感兴趣,欢迎留言讨论~

#京东##面试##后端开发##Java##面试时最害怕被问到的问题#
全部评论
mark
点赞 回复 分享
发布于 04-23 20:35 北京
mark数据库题
点赞 回复 分享
发布于 03-31 15:54 广东

相关推荐

📍面试公司:联想(Lenovo)🕐面试时间:2025年08月23日💻面试岗位:C++研发工程师❓面试问题:一、现代C++特性与语言演进&nbsp;(C++11/14/17/20)1.​​右值引用与移动语义​​:解释std::move和std::forward的区别?完美转发是如何实现的?2.​​智能指针进阶​​:std::shared_ptr的线程安全性如何?std::weak_ptr如何解决循环引用?3.​​C++17/20新特性​​:谈谈你对std::optional,&nbsp;std::variant,&nbsp;std::string_view的理解。C++20的Coroutines(协程)有什么优势?4.​​类型推导与模板​​:auto和decltype有什么区别?模板参数包(Parameter&nbsp;Pack)如何展开?二、内存管理新范式1.​​内存池技术​​:如何自己实现一个内存池?2.​​检测与优化​​:除了Valgrind,还有哪些工具(如ASAN、MSAN)可用于检测内存问题?如何重载new和delete来跟踪内存分配?三、并发编程与现代多线程1.​​原子操作与内存模型​​:std::atomic&lt;T&gt;是如何保证原子性的?解释一下内存序(Memory&nbsp;Order):memory_order_relaxed、memory_order_acquire、memory_order_release的区别和应用场景。2.​​无锁编程​​:什么是无锁(Lock-Free)数据结构?尝试实现一个无锁的队列或栈。3.​​协程​​:C++20的协程底层机制是什么?co_await、co_yield、co_return分别做了什么?四、STL容器与算法新特性1.​​新容器​​:std::unordered_map的负载因子和再哈希策略是怎样的?C++23引入了哪些新容器?2.​​算法复杂度与选择​​:std::sort用的是哪种排序算法?什么情况下会退化为O(n²)?如何避免?五、系统设计与性能优化1.​​设计线程安全的LRU缓存​​:要求get和put操作的时间复杂度为O(1),并考虑高并发场景。2.​​零拷贝技术​​:如何在Linux下使用sendfile或splice实现零拷贝文件传输?3.​​高性能日志系统​​:如何设计一个每秒处理千万级日志条目且保证零丢失的采集系统?六、设计模式与架构演进1.​​现代C++下的设计模式​​:如何使用移动语义和智能指针实现单例模式、工厂模式?2.​​分布式系统概念​​:如何理解分布式缓存中的缓存击穿、雪崩和穿透?如何设计一个防护系统?七、手撕代码题目更新1.​​实现一个移动语义优化的字符串类​​(MiniString),要求支持拷贝构造、移动构造、析构。2.​​实现一个简化版的std::shared_ptr​​(MySharedPtr),模拟引用计数。3.​​实现一个线程安全的环形缓冲区(Ring&nbsp;Buffer)​​,支持多生产者和多消费者。🙌面试感想:联想的C++面试很​​现代化和深度化​​。面试官不仅考察传统的语言特性和底层原理,还会深入询问​​C++17/20的新特性、无锁编程、协程、高性能系统设计​​等前沿话题。手撕代码环节的题目综合性更强,常要求实现一个小型的数据结构或系统组件,并考虑线程安全和性能。项目经验部分问得非常细,要求候选人能清晰说明技术选型、性能优化证据链和故障排查路径。整体感觉面试官水平很高,乐于追问,氛围既有挑战性又很专业。
查看19道真题和解析
点赞 评论 收藏
分享
评论
6
46
分享

创作者周榜

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