94年小老弟面试归来,三个月,终获蚂蚁金服Offer

ByteHorizonMaster
• 阅读 1450

前言

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

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

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 是如何实现高并发的
  • 等等......
  • Nginx 如何处理 HTTP 请求

Docker&K8s

  • 什么Docker,和虚拟机有什么区别?
  • 什么是Docker镜像
  • Docker容器有几种状态
  • 解释一下dockerfile的ONBUILD指令
  • 如何在生产中监控Docker
  • Docker和K8s相关的知识点问的比较少,就大致了解了一下。
  • 什么是Kubernetes?与Docker有什么关系?
  • Kubernetes如何简化容器化部署?
  • 你对Kubernetes的集群了解多少?

精品资源分享

为了对自己孱弱的技术栈做一个充分的补充,我费了九牛二虎之力在网上或买或求搞来很多精品资源。

以上资料关注公众号,回复【8888】,即可免费获取。

94年小老弟面试归来,三个月,终获蚂蚁金服Offer

94年小老弟面试归来,三个月,终获蚂蚁金服Offer

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
4年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这