美团架构师呕心之作:大厂面试核心知识点梳理

1.JVM

JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接 的交互。

img

2. JAVA 集合

集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。

  1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。
  2. Iterator:迭代器,可以通过迭代器遍历集合中的数据
  3. Map:是映射表的基础接口

img

3. JAVA 多线程并发

img

4. JAVA 基础

1JAVA 异常分类及处理

2JAVA 反射

3JAVA 注解

4JAVA 内部类

5JAVA 泛型

6JAVA 序列化(创建可复用的 Java 对象)

7JAVA 复制

img

5. Spring 原理

他是一个全面的,企业应用开发一站式的解决方案,贯穿表现层,业务层,持久层。但是spring仍然可以和其他框架无缝整合。

1.Spring 特点

2.Spring 核心组件

3.Spring 常用模块

4.Spring 主要包

5.Spring 常用注解

6.Spring 第三方结合

7.Spring IOC 原理

8.Spring APO 原理

9.Spring MVC 原理

10.Spring Boot 原理

11.JPA 原理

12.Mybatis 缓存

13.Tomcat 架构

img

6. 微服务

1. 服务注册发现

2.API 网关

3 .配置中心

4.事件调度(kafka)

5.服务跟踪(starter-sleuth)

6.服务熔断(Hystrix)

7.API 管理

img

7. Netty 与 RPC

1.Netty 原理

2.Netty 高性能

3.Netty RPC 实现

4.RMI 实现方式

5.Protoclol Buffer

6.Thrift

img

8,网络

1.网络 7 层架构

2.TCP/IP 原理

3.TCP 三次握手/四次挥手

4.HTTP 原理

5.CDN 原理

img

9. 日志

1.Slf4j

2.Log4j

3.LogBack

4.ELK

img

10. Zookeeper

Zookeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。 Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(可认为是轻量级的内存文件系统,但 只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与 通知机制。

1.Zookeeper 角色

2.Zookeeper 工作原理(原子广播)

3.Znode 有四种形式的目录节点

img

11. Kafka

Kafka 是一种高吞吐量、分布式、基于发布/订阅的消息系统,最初由 LinkedIn 公司开发,使用 Scala 语言编写,目前是 Apache 的开源项目。

1. Kafka 数据存储设计

2. 生产者设计

3. 消费者设计

12. RabbitMQ

RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。

1. RabbitMQ 架构

2. Exchange 类型

13. Hbase

base 是分布式、面向列的开源数据库(其实准确的说是面向列族)。HDFS 为 Hbase 提供可靠的 底层数据存储服务,MapReduce 为 Hbase 提供高性能的计算能力,Zookeeper 为 Hbase 提供 稳定服务和 Failover 机制,因此我们说 Hbase 是一个通过大量廉价的机器解决海量数据的高速存 储和读取的分布式数据库解决方案。

1. 列式存储

2. Hbase 核心概念

3. Hbase 核心架构

4. Hbase 的写逻辑

5. HBase vs Cassandra

14. MongoDB

MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情 况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能 数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似 于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

15. Cassandra

Apache Cassandra 是高度可扩展的,高性能的分布式 NoSQL 数据库。 Cassandra 旨在处理许 多商品服务器上的大量数据,提供高可用性而无需担心单点故障。 Cassandra 具有能够处理大量数据的分布式架构。 数据放置在具有多个复制因子的不同机器上, 以获得高可用性,而无需担心单点故障。

1. 数据模型

2. Cassandra 一致 Hash 和虚拟节点

3. Gossip 协议

4. 数据复制

5. 数据写请求和协调者

6. 数据读请求和后台修复

7.数据存储(CommitLog、MemTable、SSTable)

8. 二级索引(对要索引的 value 摘要,生成 RowKey)

9.数据读写

16. 设计模式

1 .设计原则

2.工厂方法模式

3.抽象工厂模式

4.单例模式

5.建造者模式

6.原型模式

7. 适配器模式

8.装饰器模式

9.代理模式

10.外观模式

11.桥接模式

12.组合模式

13.享元模式

14.策略模式

15.模板方法模式

16.观察者模式

17.迭代子模式

18.责任链模式

19.命令模式

20.备忘录模式

21.状态模式

22.访问者模式

23.中介者模式

24.解释器模式

17. 负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带 宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

1.四层负载均衡 vs 七层负载均衡

2.负载均衡算法/策略

3.LVS

4.Keepalive

5.Nginx 反向代理负载均衡

6.HAProxy

18. 数据库

1 存储引擎

2 索引

3 数据库三范式

4 数据库是事务

5 存储过程(特定功能的 SQL 语句集)

6 触发器(一段能自动执行的程序)

7 数据库并发策略

8 数据库锁

9 基于 Redis 分布式锁

10 分区分表

11 两阶段ᨀ交协议

12 三阶段ᨀ交协议

13 柔性事务

14 CAP

29. 一致性算法

1.Paxos

2.Zab

3.Raft

4.NWR

5.Gossip

6.一致性 Hash

20. JAVA 算法

1.二分查找

2.冒泡排序算法

3.插入排序算法

4.快速排序算法

5. 希尔排序算法

6. 归并排序算法

7.桶排序算法

8. 基数排序算法

9. 回溯算法

10. 最短路径算法

11. 最大子数组算法

12. 最长公共子序算法

13. 最小生成树算法

21. 数据结构

1 栈(stack)

2 队列(queue)

3 链表(Link)

4 散列表(Hash Table)

5 排序二叉树

6 红黑树

7 B-TREE

8 位图

22. 加密算法

1.AES

2.RSA

3.CRC

4.MD5

23.分布式缓存

1.缓存雪崩

2.缓存穿透

3.缓存穿透

4.缓存预热

5.缓存更新

6.缓存降级

24. Hadoop

就是一个大数据解决方案。它提供了一套分布式系统基础架构。 核心内容包含 hdfs 和 mapreduce。hadoop2.0 以后引入yarn. hdfs 是提供数据存储的,mapreduce 是方便数据计算的。

1. HDFS

2. MapReduce

3. Hadoop MapReduce 作业的生命周期

25. Spark

Spark 提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据 集和数据源(批量数据或实时的流数据)的大数据处理的需求。

1.概念

2.核心架构

3.核心组件

4.SPARK 编程模型

5.SPARK 计算模型

6.SPARK 运行流程

7.SPARK RDD 流程

8.SPARK RDD

26. Storm

1.集群架构

2.编程模型(spout->tuple->bolt)

3.Topology 运行

4.Storm Streaming Grouping

27. YARN

YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、 NodeManager(NM)、ApplicationMaster(AM)。其中,ResourceManager 负责所有资 源的监控、分配和管理; ApplicationMaster 负责每一个具体应用程序的调度和协调; NodeManager 负责每一个节点的维护。对于所有的 applications,RM 拥有绝对的控制权和对资 源的分配权。而每个 AM 则会和 RM 协商资源,同时和 NodeManager 通信来执行和监控 task。

1.ResourceManager

2.NodeManager

3. ApplicationMaster

4. YARN 运行流程

28. 机器学习

1 .决策树

2. 随机森林算法

3. 逻辑回归

4.SVM

5.朴素贝叶斯

6.K 最近邻算法

7.K 均值算法

8.Adaboost 算法

9.神经网络

10.马尔可夫

29. 云计算

1. SaaS

2. PaaS

3. IaaS

5. Openstack

MySQL是一种关系型数据库管理系统,被广泛应用于各类网站、应用程序和企业级系统中。它是由瑞典MySQL AB公司开发的,后来被Sun Microsystems收购,最终成为了Oracle公司的一部分。 MySQL以其高性能、稳定性和可靠性而闻名,不仅能够处理大规模的数据处理需求,还具备较高的扩展性和可定制性。它支持多用户访问和并发操作,并提供了完善的安全性和权限管理机制,可灵活控制用户对数据的访问权限。 MySQL采用了客户端-服务器架构,其中客户端可以是各种编程语言实现的应用程序,而服务器则负责存储和处理数据。MySQL使用了一种基于SQL(Structured Query Language,结构化查询语言)的查询语言,通过执行SQL语句实现数据的存储、检索和管理。 MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY等,每个存储引擎都有其特定的优势和适用场景。同时,MySQL还支持事务处理和数据备份恢复等常用功能,保证了数据的完整性和可靠性。 MySQL拥有庞大的用户群体和强大的社区支持,用户可以通过官方文档、在线论坛和社交媒体等渠道获取帮助和交流经验。此外,MySQL还有丰富的第三方工具和插件生态系统,可提供更多功能和扩展性。 总之,MySQL作为一种成熟、可靠的关系型数据库管理系统,被广泛应用于各类场景。它的强大功能、高性能和可扩展性使其成为了开发者们首选的数据库解决方案之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值