京东&美团研发面经

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702471 京东&美团研发面经 本文首发于微信公众号:程序员江湖 京东Java工程师 美团点评 后台开发工程师 1 京东提前批Java开发 电话面试 本来想等面完再发个面经,等了半个月了没等到。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/82702471

京东&美团研发面经

京东Java工程师

美团点评 后台开发工程师

1

京东提前批Java开发

电话面试

本来想等面完再发个面经,等了半个月了没等到。

一面:

0 自我介绍,讲一下项目中的多线程实现

1 Java的线程池的参数,拒绝策略,阻塞队列等实现和使用

2 fixethreadpool使用的是什么阻塞队列,如果使用arrayblockingqueue或者linkedblockingqueue会有什么问题。

3 ArrayList和linkedlist有什么区别,扩容呢

4 hashmap,hashtable,concurrenthashmap1.7和1.8选一个说一下。

5 jdk1.8针对hashmap使用红黑树优化目的是什么,红黑树的结构说一下。

红黑树的特性:

(1)每个节点或者是黑色,或者是红色。

(2)根节点是黑色。

(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

(4)如果一个节点是红色的,则它的子节点必须是黑色的。

(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

6 JVM了解么,说一下内存结构,堆区的分代,垃圾回收以及所用算法。

7 为什么要划分年轻代和老年代,方法区是否会垃圾回收,还问了gc时要扫描哪些位置,说了gc root,他问具体呢,虚拟机栈的局部变量,然后说其他忘了。

在Java虚拟机中判断一个对象是否可以被回收,有一种做法叫可达性分析算法,也就是从GC Root到各个对象,如果GC Root到某个对象还有可达的引用链,那么这个对象就还不能被回收,否则就等着被收割吧。

这里既然提到了GC Root,那么哪类对象可以作为GC Root呢,这是一个在面试中经常被问到的问题。

《深入理解Java虚拟机》一书中是这么说的,一下几种对象可以作为GC Root:

虚拟机栈中的引用对象

方法区中类静态属性引用的对象

方法区中常量引用对象

本地方法栈中JNI引用对象

8 MySQL了解么,说一下建立索引要考量的点,说了索引筛选率,过滤使用的字段,以及explain查看是否使用了索引等。

1、表的主键、外键必须有索引; 

2、数据量超过300的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引; 

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、频繁进行数据操作的表,不要建立太多的索引;

9 MySQL的隔离级别有哪些,默认级别是什么,他说是可重复读。

10 为什么select方法默认可以不加锁呢,明明可能会有并发冲突,我说根据隔离级别判断是否加锁,他说可重复读级别下select是不加锁的,为什么。

我说应该是用了乐观锁,也就是MVCC多版本并发控制,适用于读多写少,所以不加锁。

11 Redis提供有哪些数据类型

二面:

1 讲一下两个项目,分别做了什么,觉得跟自己做的项目有什么不同,如何看待这种不同,应该如何改进。

2 平时怎么学习,你的博客一般写了什么,觉得和高质量博客的差距在哪里。

我说我原创的都是比较基础的,进阶一点的博客主要是整理别人的文章。

3 Java虚拟机了解么,讲一下内存分区和gc,如何排查堆内存的问题,说使用jmap转储dump文件分析或者使用jstat等工具检测gc。

4 Java的线程池了解么,看过它的源代码么,怎么修改源码可以实现线程状态的监控呢。

visualvm工具

5 web框架了解什么,讲讲SpringMVC的启动过程,讲了mvc上下文以及dispatcher初始化过程和请求流程。

6 设计模式了解么,单例,工厂,分别出现在什么场景。

Spring,servlet,Spring的工厂方法

7 MySQL的select1和select *有什么区别,为什么加索引访问比不加索引要快。

8 负载均衡的几种算法,缓存的几种淘汰策略。

9 计算机网络了解么,http的header有哪些字段,是否包含ip地址。

10 有什么想问,能先来实习么,不能。

我说了不能先实习,然后就没有然后了,emmm,等了2周没有动静,估计凉凉。

美团一面

后台开发工程师

电话面试

1 实习经历

2 object类有哪些方法,hashcode,equals,clone,notify,wait。问我hashcode用在哪,说了hashmap

3 hashmap的结构,1.7和1.8有哪些区别,除了红黑树优化以外还有哪些改进,说了扩容时头插法改尾插法。

4 开始问我头插法和尾插法的区别,头插法在多线程时会出现什么问题,我说的是扩容时的死链,后来引导我说了并发插入的数据丢失问题。

5 concurrenthashmap的实现原理,1.7和1.8有什么区别,分段锁,synchronized和cas操作。

6 cas操作是怎么实现的,为什么是原子性的。wait和notify方法用在哪里,wait和sleep的区别,notify后面的代码会不会运行。

7 synchronized和lock的区别在哪里,使用方式上有什么区别。lock的trylock方法做了什么,我说了cas操作和加入阻塞队列,以及公平锁和非公平锁的区别。

8 你的项目用到countdownlatch,为什么要用,有什么问题,如何监控这个问题。

9 线程池用过哪些,线程池有哪些参数,然后问我几个常用线程池的用法和实际场景问题。

10 cas操作是哪个包里的,volatile变量用过么,有什么作用,原理是什么。i++是不是原子操作,为什么。

11 ArrayList和linkedlist有什么区别,如何遍历,使用for循环遍历linkedlist为什么不行,linkedlist能使用索引访问么,使用迭代器呢。

这里我打错了。linkedlist也可以使用for循环遍历。因为jdk提供了api。

12 JVM内存模型介绍一下,堆区怎么分代,分代垃圾回收算法说一下,老年代使用标记清除有什么问题。

13 说几个垃圾回收器,cms回收器有哪几个过程,停顿几次,会不会产生内存碎片。老年代产生内存碎片会有什么问题。问我有没有做过JVM优化。

14 jvm场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题。我说分配大对象可能引起full gc。

15 哪些情况会触发full gc,full gc是否包括young gc和major gc,如果只包括这两个,为什么要特地做full gc,我回答的是full gc还会回收方法区和堆外内存。

16 Java中有哪些引用,分别有什么用。

17 Spring的ioc和aop说一下。

aop记录日志,什么方法需要记录日志呢,增删改查都要么,我说前三个要把。他说那么如果有多级调用的rpc查找操作是不是也要记录日志,我说那是的。

18 分布式用过哪些技术,我说自己跑过一些demo,问我zookeeper有什么用,然后问我dubbo里的zookeeper是做什么的,我说服务注册中心。

19 服务注册中心实现什么功能,消费者的本地缓存如果失效了怎么办,我刚开始说多次失败重新拉取,他说这样不行吧,我就说让生产者和注册中心维持心跳,失效时删除该节点并且更新消费者缓存即可。

20 MySQL用的挺多,问你一下,innodb的b+树索引,主键索引,聚簇索引有什么区别。

21 MySQL里有哪些锁,行锁表锁,乐观锁呢,我说了版本号和MVVC,开始问我MVVC。

22 事务的实际场景问题,两个事务,一个查一个新增,问能否查到新增的,我问他隔离级别,他说RR。MySQL的RR避免幻读,所以读不到新增数据。

23 MySQL的死锁怎么产生的,举了两个例子。

24 三个事务,两个加读锁,另一事务尝试删除,应该是不行的。

25 两个事务,一个写提交,另一个能不能读到,可以读到。

26 大概就是这些了。

美团貌似凉凉,这次确实答得不是很好。

▼更多精彩内容

微信公众号【黄小斜】大厂程序员,互联网行业新知,终身学习践行者。关注 后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「笔试」、「面试」、「面经」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。 
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 JSON Apache
Apache Hudi从零到一:存储格式初探(一)
Apache Hudi从零到一:存储格式初探(一)
224 1
|
消息中间件 分布式计算 大数据
大数据面经 字节跳动 (整理)
大数据面经 字节跳动 (整理)
427 0
|
5月前
|
存储 人工智能 数据中心
Q3财报:阿里云收入增长13%至317.42亿元
Q3财报:阿里云收入增长13%至317.42亿元
257 13
|
8月前
|
人工智能 自然语言处理 数据挖掘
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
RAG 系统高效检索提升秘籍:如何精准选择 BGE 智源、GTE 阿里与 Jina 等的嵌入与精排模型的完美搭配
|
11月前
|
jenkins Java Shell
解决jenkins结束后kill掉衍生进程
解决jenkins结束后kill掉衍生进程
|
消息中间件 NoSQL 算法
第一次凡尔赛,字节跳动3面+腾讯6面一次过,谈谈我的大厂面经
简单来说,就如标题一样,我今天也想要凡尔赛一次,原来大厂的面试也没有想象中的那么难,字节跳动3面+腾讯6面,就这么一次性过了,下面就细细聊聊我的大厂面经吧,希望能够给金三银四要面试的朋友提供一些经验。
|
小程序 JavaScript Java
暹罗外卖开源啦,一款java多商户外卖系统-商家入驻如美团饿了么
暹罗外卖是一款Java外卖配送系统,适用于多商户入驻,对标美团外卖、饿了么。系统包含用户端、商家端、配送端以及总管理后台; 前端使用uni-app开发,可打包部署到微信小程序、APP、H5 Web端使用vue + Element开发 服务端使用java语言开发,技术栈:Spring Cloud & Alibaba + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + Sentinel + Seata + SkyWalking + SpringBoot Admin + Promethues + Grafana
431 2
暹罗外卖开源啦,一款java多商户外卖系统-商家入驻如美团饿了么
|
11月前
|
C++ 索引
C++数组、vector求最大值最小值及其下标
C++数组、vector求最大值最小值及其下标
374 0
|
消息中间件 缓存 算法
社招一年半面经分享(含阿里美团头条京东滴滴)
重点放在专业技能和项目经验两块1.你的简历就是你给面试官提供的考点,简历上的东西必须自己Hold住,万一自己写的东西被问住了,会很尴尬,给面试官留下的印象也不好,所以就是会啥写啥2.技术栈最好不要写精通,你敢写面试官就敢问,被问倒了很尴尬的,写熟悉,了解就行怎么投简历我这里强烈建议找人内推,这样简历通过的概率大些,如果找不到,可以试试脉脉,我就是从脉脉投的简历,把状态改成寻找机会就行,会有很多人找你的推荐一个简历制作模版,我一直用的,https://www.polebrief.com/index算法这个该刷还是得刷,别偷懒,我个人感觉刷完下面几个已经够了,大家可以根据自己的基础情况选择剑指Of
|
数据处理
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
1020 0
海量数据处理面试题:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?