2021 最新整理美团面经分享:999 页 Java 面试宝典 + 技术知识点总结 (1)
Java 中会存在内存泄漏吗,请简单描述
......
JVM 核心面试题(答案+解析)
JVM 核心知识点
2.分布式(限流+缓存+通讯)
分布式限流:Zookeeper+Nginx
分布式缓存:mongoDB+memcached+Redis
分布式通讯:RabbitMQ+Kafka
以 Redis 为例:
redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的 memcached 效率要高?
redis 主从复制如何实现的?redis 的集群模式如何实现?redis 的 key 是如何寻址的?
使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
redis 过期策略都有哪些?LRU 算法知道吗?写一下 java 代码实现?
缓存穿透、缓存击穿、缓存雪崩解决方案?
在选择缓存时,什么时候选择 redis,什么时候选择 memcached
缓存与数据库不一致怎么办?
主从数据库不一致如何解决?
Redis 常见的性能问题和解决方案?
Redis 的数据淘汰策略有哪些?
Redis 当中有哪些数据结构?
假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
使用 Redis 做过异步队列吗,是如何实现的?
Redis 如何实现延时队列?
......
Redis 核心面试题(答案+解析)
Redis 核心知识点
3.开源框架(Spring+SpringMVC+MyBatis)
以 Spring 为例:
什么是 Spring 框架?Spring 框架有哪些主要模块?
使用 Spring 框架能带来哪些好处?
什么是控制反转(IOC)?什么是依赖注入?
请解释下 Spring 框架中的 IoC?
BeanFactory 和 ApplicationContext 有什么区别?
Spring 有几种配置方式?
如何用基于 XML 配置的方式配置 Spring?
如何用基于 Java 配置的方式配置 Spring?
怎样用注解的方式配置 Spring?
请解释 Spring Bean 的生命周期?
Spring Bean 的作用域之间有什么区别?
什么是 Spring inner beans?
Spring 框架中的单例 Beans 是线程安全的么?
请举例说明如何在 Spring 中注入一个 Java Collection?
如何向 Spring Bean 中注入一个 Java.util.Properties?
请解释 Spring Bean 的自动装配?
请解释自动装配模式的区别?
如何开启基于注解的自动装配?
......
Spring 面试题(答案+解析)
Spring 核心知识点
4.微服务架构(Dubbo+SpringBoot+SpringCloud)
以 SpringBoot 为例:
什么是 Spring Boot?
Spring Boot 有哪些优点?
什么是 JavaConfig?
如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
Spring Boot 中的监视器是什么?
如何在 Spring Boot 中禁用 Actuator 端点安全性?
如何在自定义端口上运行 Spring Boot 应用程序?
什么是 YAML?
如何实现 Spring Boot 应用程序的安全性?
如何集成 Spring Boot 和 ActiveMQ?
如何使用 Spring Boot 实现分页和排序?
什么是 Swagger?你用 Spring Boot 实现了它吗?
什么是 Spring Profiles?
什么是 Spring Batch?
什么是 FreeMarker 模板?
如何使用 Spring Boot 实现异常处理?
您使用了哪些 starter maven 依赖项?
......
Spring 面试题(答案+解析)
Spring 核心知识点
5.一线互联网企业历年面试真题(阿里+字节跳动+美团+网易+拼多多+京东+B 站等)
以美团为例(部分):
List 和 Set 的区别
HashSet 是如何保证不重复的?
HashMap 是线程安全的吗?为什么不是线程安全的?(最好画图说明多线程环境下不安全)
HashMap 的扩容过程
HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的?
对象的四种引用
Java 获取反射的三种方法
Java 反射机制
Arrays.sort 和 Collections.sort 实现原理和区别?
LinkedHashMap 的应用
Cloneable 接口实现原理
wait 和 sleep 的区别?
讲一下数组在内存中如何分配?
......
一线互联网企业面试真题(答案详解版)
美团面试题分享(5 轮压力面)
==============
下面的面试题我把答案整理在了文档内了,答案和解析都是面试后续进行整理和总结的,包括个人见解和思考,不完全正确,具有一定参考价值,如果需要答案分享的点击传送门即可!!
美团一面:
做一下自我介绍吧,简单说一下你的项目;
有遇到过内存泄漏吗?你们是怎么解决的?
java 的基本类型有哪几个?String 是不是 java 的基本类型?String 为什么要是 final 类型的?
反射机制的底层实现是什么?动态呢?动态的实现原理?
hashmap 了解吗?说一下 hashmap 相关的一些东西?hashmap 是线程安全的吗?为什么是线程安全的?
concureenthashmap 了解吗?他是如何实现线程安全的?
你刚才说 1.8 基于 cas?cas 的 ABA 问题怎么解决?
说一下 JVM 的线程模型?这些区域都分别是干啥用的?
说一下 java 类加载器的工作机制?类加载在哪个区域进行的?
说一下 java 的线程模型?
violate 了解吗?它的原理是什么?violate 是线程安全的吗?
保证线程安全的解决方法有哪些?说一说读写锁吧,读写锁的读
数据库的索引有哪几种?为什么要用 B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC 机制了解不?MVCC 机制有什么问题?怎么去解决这个问题?mysql
慢语句调优做过吗?说说你是怎么做的?
redis 了解吗?你说说怎么用 redis 实现分布式锁?
spring 中 Bean 的作用域,springMVC 的 controller 是线程安全的吗?怎么去保证线程安全呢?
消息队列有用过吗?说说你怎么用的?
计算机网络了解吗?说一说 TCP 三次握手和四次挥手吧
time_wait 状态产生的原因是什么?,有什么危害?可以如何避免?
寻找旋转排序数组中的最小值
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
请找出其中最小的元素。
你可以假设数组中不存在重复元素。
示例 1:
输入: [3,4,5,1,2]
输出: 1
示例 2:
输入: [4,5,6,7,0,1,2]
输出: 0
美团二面:
首先还是问项目。
String,StringBuffer,StringBuilder 的区别,为什么 String 是不可变的,StringBuffer 和 StringBuilder 哪个是线程安全的,他们分别适用于什么场景。
java 类加载过程是怎么样的,说一下 volatile。
并发包了解吗?假如几个线程之间相互等待,可以用哪个并发类来实现,他的原理是什么?
数据库慢查询优化了解哪些?
说一下 spring 容器的启动过程?
讲一下分布式锁,基于 zookeeper 实现和 redis 实现在性能上有什么差异?
kafka 如何保证不丢消息又不会重复消费。了解大数据相关的一些技术吗?
最后写了道题:跳跃游戏;
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
示例 1:
输入: [2,3,1,1,4]
评论