2019年美团、滴滴、蘑菇街Java岗9次面试总结

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 无论什么事,如果不断收集材料,积之十年,总可成一学者!

大概在三月份开始面了几家互联网公司,主要方向是java后端和大数据开发,最近整理学习资料,都快秋招了,发的有点晚了,不过还是想分享一下。美团,滴滴,蘑菇街等公司的面经。
image

美团

一面
聊你最熟悉的项目和技术。
项目中为什么要使用spark。
spark怎么划分stage,宽窄依赖,聊源码
spark提交一个作业的执行流程(单机模式)
spark driver节点,worker以及master节点遇到故障如何解决。
spark checkpoint原理
聊JVM内存划分与GC算法。
JVM中为什么需要使用分代收集算法,有什么好处。
手撕代码:
输入一个链表和一个定值x,要求将值小于x的所有节点置换到x的左侧,值大于x的所有节点置换到x右侧,另外需要保持原有前后关系。比如:
输入:1->4->3->2->5->2 and x = 3,
输出:1->2->2->3->4->5.
其中:1/2/2小于3,4/5大于3,而且输入的前后顺序也是1/2/2,4/5
一面刚开始是分布式存储团队,主要技术栈是hadoop,hbase以及hive,后来感觉我对分布式计算感兴趣,面试官帮我转岗到实时计算组,接着二面。
二面
自我介绍
聊项目,项目中有哪些难点,解决了什么问题?
spark streaming集群如何做容灾处理。
spark checkpoint原理。
了解哪些海量数据去重的方法。
flink和spark的区别?
flink了解哪些,它的基本架构原理
如何设计一个多级缓存系统,需要考虑到哪些问题?
redis和zookeeper做分布式锁的区别,还有其他方式做分布式锁吗?
一道算法:给定一个栈,使用O(1)的时间复杂度计算栈中的最小元素。
了解哪些机器学习算法?做过相关项目吗?
团队间协作需要注意哪些问题?
如何后面让你做同样的一个系统,你会从之前的项目中吸取怎么样的经验。
三面
自我介绍
深挖项目。
如何理解大数据,它解决了什么问题。
在一个很大的m*n的数组中,每一行有序,每一列无序,如何求其topk。
进程之间如何通信。
操作系统页的概念,每一页的大小是多少,为什么是这么多。
一台机器可以建立的连接是否是无限的,影响它的因素有哪些?
TCP断开连接时的time_wait状态?
确定一个TCP连接的5元组。
还有什么向问我的嘛?
如何理解实时计算。
过了几天,问了下,说是没HC了,给我转分布式存储,不过需要重新面试,就没再继续面了。
image

滴滴(面试通过)

一面
自我介绍
介绍项目。
说说JVM gc算法,垃圾回收器。
聊下java并发包的一些常用工具类
聊spark源码。
有什么想问的。
二面
redis的工作模型。
redis如何处理过期数据。
redis中hash类型求数据大小快还是将所有数据读出来快。
数据库与缓存读写一致性问题。
如果以上问题回答的不太完美,你会怎么办。
spark的通信模型,集群发生故障是怎么办。
spark的执行流程。
java中有哪些锁。
synchronized为什么是重量级锁。
如果工作中提出不合理的需求你会怎么办。
怎么看待加班。
实习时间。
过了几天面试官说面试通过,过几天老板会和我商量入职时间,然后过了几天。。。。HC被锁了。。
image

蘑菇街(offer)

一面
项目介绍,项目中的难点与亮点
spark sql的UDF,UDAF函数的实现。
Hive中如何实现UDF。
hashmap源码中有哪些成员变量,什么时候适合增大负载因子,什么时候适合减小。
java中float类型,类型转换。
字符串的匹配。
二面
自我介绍
java中有哪些锁
java CAS,看过native方法源码没有
什么是死锁,代码中出现了死锁怎么解决。
求一颗二叉树中topk大的元素。
java volatile关键字。
spark执行流程。
如何解决数据倾斜。
实习时间,倾向的岗位。
三面
你有哪些优势
大学期间对你影响最大的人
你有哪些优点和缺点。
对前面的面试自我感觉怎么样。
期望薪资
实习时间。
最终拿到offer。

image

总结:菜是原罪!!!鲁迅先生说:无论什么事,如果不断收集材料,积之十年,总可成一学者!日常积累和沉淀非常重要!
喜欢文章记得点个赞,感谢支持!

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
21天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
38 1
|
10天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
33 0
|
20天前
|
存储 缓存 算法
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
最重要的是保持自信和冷静。提前准备,并对自己的知识和经验有自信,这样您就能在面试中展现出最佳的表现。祝您面试顺利!Java 是一种广泛使用的面向对象编程语言,在软件开发领域有着重要的地位。Java 提供了丰富的库和强大的特性,适用于多种应用场景,包括企业应用、移动应用、嵌入式系统等。下是几个面试技巧:复习核心概念、熟悉常见问题、编码实践、项目经验准备、注意优缺点、积极参与互动、准备好问题问对方和知其所以然等,多准备最好轻松能举一反三。
46 0
Java入门高频考查基础知识4(字节跳动面试题18题2.5万字参考答案)
|
24天前
|
Java 程序员 API
java1.8常考面试题
在Java 1.8版本中,引入了很多重要的新特性,这些特性常常成为面试的焦点
42 8
|
25天前
|
设计模式 网络协议 Java
美团面试,问的贼细~
美团校招面试涵盖网络(HTTP/TCP/UDP)、框架(Spring的IoC/AOP)、设计模式(静态代理)、编程(手写静态代理)、MySQL(事务隔离级别)、Java基础(数据类型/Integer与int的区别)、HashMap等知识点。面试从自我介绍开始,深入到技术细节,如TCP的三次握手和四次挥手,GET与POST请求的区别,以及MySQL的不可重复读示例。了解更多详情可访问[www.javacn.site](https//www.javacn.site)。
38 1
美团面试,问的贼细~
|
29天前
|
NoSQL Java 关系型数据库
整理Java面试题
整理Java面试题
|
29天前
|
安全 算法 Java
Java 并发编程 面试题及答案整理,最新面试题
Java 并发编程 面试题及答案整理,最新面试题
88 0
|
9天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信
|
9天前
|
算法 Java 开发者
Java中的多线程编程:概念、实现与性能优化
【4月更文挑战第9天】在Java编程中,多线程是一种强大的工具,它允许开发者创建并发执行的程序,提高系统的响应性和吞吐量。本文将深入探讨Java多线程的核心概念,包括线程的生命周期、线程同步机制以及线程池的使用。接着,我们将展示如何通过继承Thread类和实现Runnable接口来创建线程,并讨论各自的优缺点。此外,文章还将介绍高级主题,如死锁的预防、避免和检测,以及如何使用并发集合和原子变量来提高多线程程序的性能和安全性。最后,我们将提供一些实用的性能优化技巧,帮助开发者编写出更高效、更稳定的多线程应用程序。
|
7天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【4月更文挑战第11天】 在Java中,高效的并发编程是提升应用性能和响应能力的关键。本文将探讨Java并发的核心概念,包括线程安全、锁机制、线程池以及并发集合等,同时提供实用的编程技巧和最佳实践,帮助开发者在保证线程安全的前提下,优化程序性能。我们将通过分析常见的并发问题,如竞态条件、死锁,以及如何利用现代Java并发工具来避免这些问题,从而构建更加健壮和高效的多线程应用程序。