面试收获美团 offer 的学习笔记:MySQL+Spring+JVM + 多线程并发等

262 篇文章 5 订阅
83 篇文章 1 订阅

从去年到今年先后面试了 6 次美团,外卖、订单、商旅面试了好几个部门、总结下来面试的大体思路真的基本一致诶。比如:

JVM 参数配置、常用调试工具、分区、类加载,还会问你有需要线上的调试问题吗?遇到死循环 CPU 飙升怎么解决?
Java 并发包常用工具用法和原理、会配合集合类一起考,对了还会有 volatile、CAS 原理等。
MySQL 也算是必备了,索引存储结构、索引搜索原理、事务的隔离级别和原理,这些真的是逢考必问。当然除了 MySQL,Redis 和 ES 也是面试长文的,大多都是集中到原理。比如 ES 倒排索引、分片原理,Redis 的 zset 原理和使用场景、多路复用、穿透、熔断等等。
框架也是必备的知识点,最常见的就是 AOP 原理,自己怎么实现?Spring Boot 啥原理?框架通常会配合设计模式一起考,比如你最熟悉的设计模式是啥?Spring MVC 里面用了什么设计模式?解决了什么问题?
接下来最重要的就是服务治理了,这里面内容就太多了,Dubbo 也好,Spring Cloud 也罢,总之这个地方最能看得出你真实的工作经验和问题的考虑深度,毕竟没有真正在庞大的系统里面锻炼过真的很难应付这个地方。
没漏掉还有一个最重要的算法,这个就靠平时多练了,LeetCode 中文版上线了,一天一道题,面试必无敌。
说了这么多只有一个重点,就是无论大厂他有没有题库,面试题的大体方向就这么多,你要都掌握了,还担心去不了大厂?那么重点就来了,怎么复习呢?首先你需要有一个知识点轮廓,对着这个轮廓不停的扩展、延伸,自己查漏补缺。因为虽然知识点就这么多,但是面试官的提问方式还是千奇百怪的,所以你需要通过知识点做相应的延伸,才能融会贯通。道理其实大家都知道,但是实施起来就遇到了问题,所以这里我推荐最简单的方式:

脑图 + 书 + 视频
什么意思呢?具体解释一下,首先你需要有一个全面的知识点脑图,然后遇到不懂的地方就看书,千万不要去看博客,毕竟博客门槛真的太低了,最后要配合一些高质量的视频,用来巩固知识和开拓视野。脑图已经给你整理好了,可以根据这个图自行进行查漏补缺和规划

MySQL 学习笔记

MySQL 具有这样明显的优势,并且由于它优异的性能,MySQL 的应用也越来越广泛,使用者也越来越多。但是在市场上,相应的适合培训的教材却屈指可数,广大爱好者苦于资料的缺乏而无法对 MySQL 做进一步的了解。这份笔记可以说是可遇不可求的了。

MySQL 体系结构和存储引擎
InnoDB 存储引擎
文件

索引与算法

事务
备份与恢复
性能调优
InnoDB 存储引擎源代码的编译和调试

Spring 原理学习笔记

Spring 最根本的使命是简化 Java 开发,因此学习、硏究、掌握 Spring 成为每一位 Java 开发人员的必修课。

Spring 特点
Spring 核心组件
Spring 常用模块
Spring 主要包
Spring 常用注解
Spring 第三方结合
Spring IOC 原理
Spring APO 原理
Spring MVC 原理
Spring Boot 原理
JPA 原理
Mybatis 缓存
Tomcat 架构

JVM 学习笔记

作为 Java 的从业者,在找工作的时候,一定会被问及关于 JVM 相关的知识。 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。

线程
JVM 内存区域
JVM 运行时内存
垃圾回收与算法
JAVA 四种引用类型
GC 分代收集算法 VS 分区收集算法
GC 垃圾收集器
JAVA IO/NIO
JVM 类加载机制

多线程并发学习笔记

Thread 类的学习并不像 JDBC 那样简单,学习多线程会遇到太多的问题、弯路以及我们所谓的 “坑”,为了在技术层面上进行更高的追求,我将多线程的技术点以笔记的方式进行整理

JAVA 并发知识库
JAVA 线程实现 / 创建方式
4 种线程池
线程生命周期 (状态)
终止线程 4 种方式
sleep 与 wait 区别
start 与 run 区别
JAVA 后台线程
JAVA 锁
线程基本方法
线程上下文切换
同步锁与死锁
线程池原理
JAVA 阻塞队列原理
CyclicBarrier、CountDownLatch、Semaphore 的用法
volatile 关键字的作用(变量可见性、禁止重排序)
如何在两个线程之间共享数据
ThreadLocal 作用(线程本地存储)
synchronized 和 ReentrantLock 的区别
ConcurrentHashMap 并发
Java 中用到的线程调度
进程调度算法
什么是 CAS(比较并交换 - 乐观锁机制 - 锁自旋)
什么是 AQS(抽象的队列同步器)

算法刷题 LeetCode 中文版

编程技巧
线性表
字符串
第 4 章 栈和队列

排序
查找
暴力枚举法
广度优先搜索
深度优先搜索
分治法
贪心法
动态规划

细节实现题

以上的所有资料可以免费出来,整理的这些面试题希望对 Java 开发的朋友们有所参考以及少走弯路;希望每一个程序员都能够实现自己的大厂梦!
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java 的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值