我!94年!准备了三个月,终获蚂蚁金服Offer!

因为疫情的关系,上半年一直在家里远程办公,可是明明也是每天工作八小时,却只发三分之二的工资,一气之下我直接向领导提出了离职。

于是乎我六月份到现在这几个月的时间一直在找工作,但却遭遇到了诸多不顺,因为在传统行业呆久了,现在想去互联网大厂真的太艰难了,每次面试时的面试题对于我来说都超纲了很多,很多新鲜技术我都没怎么了解。每次面试官看着我的眼神都像下图所示。

                              

                            

前前后后,断断续续的面试真的让我身心俱疲,也深刻的认识的自己的技术栈的不足。于是每次结束面试我都会认真总结。不断的在网上找资料提升自己。面试的越多,你就会发现,其实面试整体上就那些技术栈,当我们有方向,有规划的提升自己,我们会成长的很快。

下面我将总结大大小小二十几次的面试的相关内容。希望能给大家带来些许帮助。

设计模式

说一下设计模式?你都知道哪些?

实现一个单列模式。

什么是简单工厂模式?

什么是抽象工厂模式?

什么是观察者模式?

什么是装饰器模式?

什么是模板方法模式?

等等23种常用设计模式都可能问道.....

Spring源码解析

Spring框架的设计目标,设计理念,和核心是什么
Spring的优缺点是什么?
Spring有哪些应用场景
Spring由哪些模块组成?
Spring 框架中都用到了哪些设计模式?
详细讲解一下核心容器(spring context应用上下文) 模块
Spring框架中有哪些不同类型的事件
Spring 应用程序有哪些不同组件?
使用 Spring 有哪些方式?
什么是Spring IOC 容器?
控制反转(IoC)有什么作用
IOC的优点是什么?
Spring IoC 的实现机制
Spring 的 IoC支持哪些功能
BeanFactory 和 ApplicationContext有什么区别?
Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解
ApplicationContext通常的实现是什么?
什么是Spring的依赖注入?

等等,还有几家面试官问我是否阅读过Spring的源码......

Mybatis源码解析

MyBatis框架的缺点:

MyBatis框架适用场合

MyBatis与Hibernate有哪些不同?

#{}和${}的区别是什么

当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

Mybatis的一级缓存和二级缓存原理

什么是MyBatis的接口绑定?有哪些实现方式

使用MyBatis的mapper接口调用时有哪些要求

等等......

SpringBoot

什么是 Spring Boot?

Spring Boot 有哪些优点?

Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

Spring Boot 自动配置原理是什么?

你如何理解 Spring Boot 配置加载顺序?

什么是 YAML?

YAML 配置的优势在哪里 ?

Spring Boot 是否可以使用 XML 配置 ?

spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 ?

等等......

性能优化之Mysql

MySQL的复制原理以及流程

MySQL中myisam与innodb的区别

MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义

innodb的事务与日志的实现方式

MySQL binlog的几种日志录入格式以及区别

你们数据库是否支持emoji表情,如果不支持,如何操作?

你是如何监控你们的数据库的?你们的慢日志都是怎么查询的?

InooDB和MyISAM的select count(*)哪个更快,为什么

mysql为什么用自增列作为主键

B+树索引和哈希索引的区别

Mysql优化

性能优化之JVM

什么情况下会发生栈内存溢出

详解JVM内存模型

JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor。

JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代

你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。

JVM内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存。

简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。

JVM优化

性能优化之tomcat

Tomcat的缺省端口是多少,怎么修改?

tomcat 有哪几种Connector 运行模式(优化)?

Tomcat有几种部署方式?

tomcat容器是如何创建servlet类实例?用到了什么原理?

tomcat 如何优化?

分布式通信之Netty

Netty 是什么?是否使用过Netty?

Netty 的特点是什么?

什么是 Netty 的零拷贝?

Netty 的优点?

Netty 的应用场景?

Netty 高性能表现在哪些方面?

Netty 中有那种重要组件?

Netty 发送消息有几种方式?

默认情况 Netty 起多少线程?何时启动?

分布式服务治理之Dubbo

Dubbo是什么?为什么要用Dubbo?

Dubbo 和 Spring Cloud 有什么区别?

dubbo都支持什么协议,推荐用哪种?

Dubbo内置了哪几种服务容器?

Dubbo里面有哪几种节点角色?

Dubbo默认使用什么注册中心,还有别的选择吗?

Dubbo主要的配置项有哪些,作用是什么?

Dubbo有几种容错机制

dubbo的服务降级

dubbo的优先级配置

等等......

注册中心Zookeeper

ZooKeeper 是什么?

ZooKeeper 提供了什么?

Zookeeper 文件系统

ZAB 协议?

四种类型的数据节点 Znode

Zookeeper Watcher 机制 -- 数据变更通知

客户端注册 Watcher 实现

服务端处理 Watcher 实现

客户端回调 Watcher

zookeeper 是如何保证事务的顺序一致性的?

分布式集群中为什么会有 Master?

zk 节点宕机如何处理?

zookeeper 负载均衡和 nginx 负载均衡区别

Zookeeper 有哪几种几种部署模式?

等等......

MongoDB

NoSQL数据库有哪些类型?

MySQL与MongoDB之间最基本的差别是什么?

分析器在MongoDB中的作用是什么?

MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?

MongoDB支持存储过程吗?如果支持的话,怎么用?

如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?

分片(sharding)和复制(replication)是怎样工作的?

数据在什么时候才会扩展到多个分片(shard)里?

如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?

等等......

Redis

Redis 持久化机制
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
热点数据和冷数据是什么
Memcache与Redis的区别都有哪些?
单线程的redis为什么这么快
redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构
redis的过期策略以及内存淘汰机制
Redis 为什么是单线程的,优点
如何解决redis的并发竞争key问题
Redis 集群方案应该怎么做?都有哪些方案?
有没有尝试进行多机redis 的部署?如何保证数据一致的?
对于大量的请求怎么样处理
Redis 常见性能问题和解决方案?
讲解下Redis线程模型
为什么Redis的操作是原子性的,怎么保证原子性的?
Redis事务
Redis实现分布式锁

等等......

SpringCloud

什么是SpringCloud?使用 Spring Cloud 有什么优势?

服务注册和发现是什么意思?Spring Cloud 如何实现?

负载平衡的意义什么?什么是Ribbon?

什么是 Hystrix?它如何实现容错?

什么是 Netflix Feign?什么是Open Feign?

什么是 Spring Cloud Bus?

什么是服务熔断?什么是服务降级?

Eureka和zookeeper之间的区别

什么是Spring Cloud Gateway?

什么是 zuul路由网关?

什么是分布式配置中心?

等等......

kafka

为什么要使用 kafka,为什么要使用消息队列

Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么

kafka中的broker 是干什么的

kafka follower如何与leader同步数据

ZooKeeper在Kafka中的作用是什么?

ZooKeeper在Kafka中的作用是什么?

Kafka 的 producer 工作流程

Kafka 的 consumer 工作流程

数据丢失和重复消费的场景

Kafka 的数据丢失,高可靠性和一致性是怎么实现的

consumer 端数据丢失、数据重复消费 如何解决

等等......

rabbitMQ

什么是RabbitMQ?

rabbitmq 的使用场景

RabbitMQ基本概念

RabbitMQ的工作模式

如何保证RabbitMQ消息的顺序性?

消息如何分发?

消息怎么路由?

消息基于什么传输?

如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?

如何确保消息正确地发送至 RabbitMQ?如何确保消息接收方消费了消息?

等等......

rocketMQ

RocketMQ 由哪些角色组成?

RocketMQ执行流程

请说说你对 Producer 的了解?

说说你对 Consumer 的了解?

消费者消费模式有几种?

消费者获取消息有几种模式?

什么是定时消息?如何实现?

RocketMQ 如何保证高可用的?

如何保证消息不被重复消费?或者说如何保证消息消费时的幂等性?

如何保证消息的可靠性传输?要是消息丢失了怎么办?

如何保证消息的顺序性?

如何解决消息队列的延时以及过期失效问题?

消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

等等......

分库分表之Mycat,ShardingSphere

Mycat是什么?Mycat的原理?

ShardingSphere是什么?ShardingSphere的原理?

什么是水平拆分?什么是垂直拆分?

解释一下全局表,ER表,分片表?

进行库表拆分时,拆分规则怎么取舍?

说一说Mycat和ShardingSphere的区别,如何选择?

等等......

并发编程

并发编程的优缺点

线程和进程区别

创建线程的四种方式

Java内存模型

并发关键字synchronized,volatile,final

什么是CAS,AQS,ReentrantLock,

ReentrantReadWriteLock

并发容器之ConcurrentHashMap,SynchronizedMap,CopyOnWriteArrayList,ThreadLocal,BlockingQueue,ConcurrentLinkedQueue,ArrayBlockingQueue与LinkedBlockingQueue

线程池相关问题

并发工具

等等......

并发编程相关知识点问了很多,就不一一列举了,反正问的我很懵逼~

Nginx

什么是Nginx,作用是什么?

Nginx自带支持的负载均衡法则

Nginx怎样配置动静分离服务器

Nginx安全配置方式

fastcgi 与 cgi 的区别?

Nginx 常用命令?

什么是正向代理和反向代理

Nginx 如何处理 HTTP 请求

Nginx 是如何实现高并发的等等......

Docker&K8s

什么Docker,和虚拟机有什么区别?

什么是Docker镜像

Docker容器有几种状态

解释一下dockerfile的ONBUILD指令

如何在生产中监控Docker

什么是Kubernetes?与Docker有什么关系?

Kubernetes如何简化容器化部署?

你对Kubernetes的集群了解多少?

Docker和K8s相关的知识点问的比较少,就大致了解了一下。

相关问题答案

有需要的朋友可以帮忙点赞’+关注,加助理VX:mxx2020666,即可免费领取

猜你喜欢

转载自blog.csdn.net/m0_46995061/article/details/109198938