美团一面凉凉:MySQL+Java+Redis+ 算法 + 网络 +Linux 等一个都讲不清
面试大概九十分钟,问的东西很全面,需要做充足准备,就是除了概念以外问的有点懵逼了(呜呜呜~)。回来之后把这些题目做了一个分类并整理出答案(强迫症的我~狂补知识~)分为 MySQL+Java+Redis+算法+网络+Linux 等六类。
注:每一类美团面试问题后面都有相应的我自己整理的 pdf 笔记:面试高频解析+手绘思维脑图+纯手打笔记等等,若是有朋友对小编自己所总结的感兴趣皆可免费共享,有需要的朋友可以点击这里即可获取到文章中的文档,资料!
01 MySQL 相关
1.1 美团面试问题
MySQL 有哪些锁?
解释一下 ACID 都是什么
Innodb 中索引的实现
B+树
AUTO_INCREMENT 原理(考察并发情况)
数据库的索引有哪几种?为什么要用 B+树来做索引?组合索引和几个单个的索引有什么区别?数据库的大表查询优化了解吗?MVCC 机制了解不?MVCC 机制有什么问题?怎么去解决这个问题?mysql 慢语句调优做过吗?说说你是怎么做的?
1.2 我的 MySQL 学习笔记
(1)20 个高频 MySQL 面试知识点
事务四大特性(ACID)原子性、一致性、隔离性、持久性?
事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL 默认是哪个级别?
MySQL 常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
MySQL 的 MyISAM 与 InnoDB 两种存储引擎在,事务、锁级别,各自的适用场景?
查询语句不同元素(where、jion、limit、group by、having 等等)执行先后顺序?
什么是临时表,临时表什么时候删除?
MySQL B+Tree 索引和 Hash 索引的区别?
sql 查询语句确定创建哪种类型的索引?如何优化查询?
聚集索引和非聚集索引区别?
有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
非关系型数据库和关系型数据库区别,优势比较?
数据库三范式,根据某个场景设计数据表?
数据库的读写分离、主从复制,主从复制分析的 7 个问题?
使用 explain 优化 sql 和索引?
MySQL 慢查询怎么解决?
什么是 内连接、外连接、交叉连接、笛卡尔积等?
mysql 都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
varchar 和 char 的使用场景?
mysql 高并发环境解决方案?
数据库崩溃时事务的恢复机制(REDO 日志和 UNDO 日志)?
20 个高频 MySQL 面试知识点:
(2)MySQL 学习思维脑图(xmind)
02 Java 相关
2.1 美团面试问题
JVM 内存模型
GC 垃圾回收算法
讲解新生代 老年代
java 的基本类型有哪几个?String 是不是 java 的基本类型?String 为什么要是 final 类型的?
说一下 JVM 的线程模型?这些区域都分别是干啥用的?java 线程模型和 jvm 线程模型注意区分
2.2 我的 JAVA 学习笔记
(1)JAVA 面试宝典
(2)JAVA 并发体系学习思维脑图(xmind)
(3)多线程并发编程学习思维脑图(xmind)
03 Redis 相关
3.1 美团面试问题
redis 了解吗?你说说怎么用 redis 实现分布式锁?
Redis 常用数据结构及底层数据结构实现
如何解决 Redis 的并发竞争 Key 问题
如何保证缓存与数据库双写时的数据一致性?
3.2 我的 Redis 学习笔记
(1)14 个高频 Redis 知识点
redis 简介
为什么要用 redis /为什么要用缓存(高性能、高并发)
为什么要用 redis 而不用 map/guava 做缓存?
redis 和 memcached 的区别
redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set)
redis 设置过期时间
redis 内存淘汰机制(MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 Redis 中的数据都是热点数据?)
redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
redis 事务
Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级)
分布式环境下常见的应用场景(分布式锁、分布式自增 ID)
Redis 集群模式(主从模式、哨兵模式、Cluster 集群模式)
如何解决 Redis 的并发竞争 Key 问题
如何保证缓存与数据库双写时的数据一致性?
14 个高频 Redis 知识点:
(2)Redis 学习思维脑图(xmind)
04 思维/算法
4.1 美团面试问题
使用 O(N)复杂度完成 GBDT 分裂
找出无序数组中相隔距离最长的逆序对
给出一个 rand5(),实现一个分布均匀的 rand7()生成器
有一个点,向北走 5 公里、东走 10km、向南走 5 公里,回到原点。这样的点有几个,证明。
有一个 n 克的物体、一个天平和若干砝码,这个天平没有刻度,试问最少用多少个什么样的砝码可以将这个物体的质量称出。砝码的质量和个数自行指定。
4.2 算法刷题
编程技巧
线性表
字符串
栈和队列
树
排序
查找
暴力枚举法
广度优先搜索
深度优先搜索
分治法
贪心法
动态规划
图
细节实现题
算法刷题:
05 操作系统、Linux 相关
5.1 美团面试问题
死锁产生的原因
进程、线程区别,什么时候用线程
如何实现一个线程池,Java 中线程池如何进行配置
linux 中有哪些常见的指令,进行介绍
select、poll、epoll 有没有了解过,讲解一下
线程切换,引申到 Java 阻塞➡️运行
页面置换算法有哪些 介绍一下
5.2 Linux 学习宝典
06 网络相关
6.1 美团面试问题
OSI 七层模型都是什么
举例网络协议,都在哪个层
TCP UDP 区别
TCP 如何实现可靠连接
Time_Wait 中 2*msl 为什么
如果 TCP 突然接收方故障 会发生什么
HTTP 状态码 含义,503 504,200
GET POST 区别
一个 url 从输入到访问经过了哪些过程
说一说 TCP 三次握手和四次挥手
6.2 Java 进阶核心知识手册大全
(JVM,JAVA 集合,网络,JAVA 多线程并发,JAVA 基础,Spring 原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA 算法,数据结构,加密算法,分布式缓存)
Java 进阶核心知识大全—网络部分内容:
最后的最后
声明:以下所总结的<Java 后端面试集合>+<我的 Java 学习书籍(PDF 文件)>等皆可分享,有需要的朋友可以点击这里即可获取到文章中的文档,资料!
第一:给大家分享一份花了整整 28 天才整理好的 Java 后端面试集合
一部分:Java 基础-中级-高级
第二部分:开源框架(SSM:Spring+MVC+MyBatis)
第三部分:性能调优(JVM+MySQL+Tomcat)
第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
第六部分:其他:并发编程+设计模式+数据结构算法+网络
评论