阿里二面凉经:虚拟机+中间件+设计模式+缓存+Spring等难题整理

发布于:2022-11-28 ⋅ 阅读:(272) ⋅ 点赞:(0)

面试时间将近两个小时(期间等待二面面试官来面我的时候等了半个多小时)面试官问的东西很多,还挖了好几个坑,一个技术点套着一个技术点的问,一定要做好万全的准备。问了一些基本层面上的技术点都答出来了,稍微问深一点我就有点懵了(实战经验还是不足)。

回来之后把这些题目做了一个分类并整理出答案(每次去面试的时候面试官问的问题面试结束后我都会做笔记)分为Spring+逻辑算法+MySQL+Java+Redis+并发编程+JVM+RabbitMQ等,接下来分享一下我的这次蚂蚁二面面经+一些我的学习笔记。

注意注意:需要小编整理的Spring+逻辑算法+MySQL+Java+Redis+并发编程+JVM+RabbitMQ等面试答案、学习文档笔记、思维导图(xmind)的朋友可以 私信我 即可免费领取

阿里面试官问的Spring Boot问题

  1. 什么是 Spring Boot?

  2. 为什么要用 Spring Boot?

  3. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

  4. Spring Boot 的配置文件有哪几种格式?它们有什么区别?

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

  6. 开启 Spring Boot 特性有哪几种方式?

  7. Spring Boot 需要独立的容器运行吗?

  8. 运行 Spring Boot 有哪几种方式?

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

  10. Spring Boot 的目录结构是怎样的?

我的Spring Boot学习笔记

  1. Spring Boot、Spring MVC 和 Spring 有什么区别?

  2. 什么是自动配置?

  3. 什么是 Spring Boot Stater ?

  4. 你能否举一个例子来解释更多 Staters 的内容?

  5. Spring Boot 还提供了其它的哪些 Starter Project Options?

  6. Spring 是如何快速创建产品就绪应用程序的?

  7. 创建一个 Spring Boot Project 的最简单的方法是什么?

  8. Spring Initializr 是创建 Spring Boot Projects 的唯一

  9. 为什么我们需要 spring-boot-maven-plugin?

  10. 如何使用 SpringBoot 自动重装我的应用程序?

  11. 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?

  12. 如何在 Spring Boot 中添加通用的 JS 代码?

Spring学习路线思维导图

阿里面试官问的RabbitMQ问题

  1. 使用RabbitMQ有什么好处?

  2. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?

  3. RabbitMQ 概念里的 channel、exchange 和 queue 是逻辑概念,还是对应着进程实体?分别起什么作用?

  4. vhost 是什么?起什么作用?

  5. 消息基于什么传输?

  6. 消息如何分发?

  7. 消息怎么路由?

  8. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?

我的RabbitMQ学习笔记

  1. 什么是rabbitmq

  2. 为什么要使用rabbitmq

  3. 使用rabbitmq的场景

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

  5. 如何避免消息重复投递或重复消费?

  6. 消息基于什么传输?

  7. 消息如何分发?

  8. 消息怎么路由?

  9. 如何确保消息不丢失?

  10. 使用RabbitMQ有什么好处?

  11. rabbitmq的集群

  12. mq的缺点

阿里面试官问的MySQL问题

  1. 事务四大特性

  2. MySQL的事务隔离级别

  3. 数据库的索引

  4. 数据库三范式

  5. 脏读&不可重复读&幻读

  6. 存储引擎 MyISAM和InnoDB区别

  7. Mysql中有哪几种锁?

  8. 讲一下存储过程

我的MySQL灵魂拷问笔记

  1. Mysql的技术特点是什么?

  2. Heap表是什么?

  3. Mysql服务器默认端口是什么?

  4. 与Oracle相比,Mysql有什么优势?

  5. 如何区分FLOAT和DOUBLE?

  6. 如何获取当前的Mysql版本?

  7. Mysql中使用什么存储引擎?

  8. Mysql驱动程序是什么?

  9. 主键和候选键有什么区别?

  10. 如何使用Unix shell登录Mysql?

  11. 你怎么看到为表格定义的所有索引?

  12. InnoDB是什么?

MySQL学习路线思维导图

23种设计模式知识要点

  1. 单例模式

  2. 工厂模式

  3. 抽象工厂模式

  4. 模板方法模式

  5. 建造者模式

  6. 代理模式

  7. 原型模式

  8. 中介者模式

  9. 命令模式

  10. 责任链模式

设计模式学习路线思维导图

并发编程面试专题

  1. Java中守护线程和本地线程区别

  2. 什么是多线程中的上下文切换

  3. 死锁与活锁的区别,死锁与饥饿的区别

  4. 线程与进程的区别

  5. Java中用到的线程调度算法是什么

  6. 什么是线程组,为什么在Java中不推荐使用

  7. 在Java中Executor和Executors的区别

  8. 什么是原子操作,在Java Concurrency API中有哪些原子类(atomic classes)

  9. 什么是Executors框架

  10. 什么是阻塞队列,阻塞队列的实现原理是什么,如何使用阻塞队列来实现生产者-消费者模型

并发编程学习路线思维导图

JVM虚拟机面试专题

  1. Java 类加载过程?

  2. 描述一下 JVM 加载 Class 文件的原理机制?

  3. Java 内存分配。

  4. GC 是什么? 为什么要有 GC?

  5. 简述 Java 垃圾回收机制。

  6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)

  7. 垃圾回收的优点和原理。并考虑 2 种回收机制。

  8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  9. Java 中会存在内存泄漏吗,请简单描述。

  10. 深拷贝和浅拷贝

JVM虚拟机学习路线思维导图

Redis面试专题

  1. 为什么要用 redis /为什么要用缓存

  2. 为什么要用 redis 而不用 map/guava 做缓存?

  3. redis 和 memcached 的区别

  4. redis 常见数据结构以及使用场景分析

  5. redis 设置过期时间

  6. redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)

  7. redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)

  8. redis 事务

  9. Redis 常见异常及解决方案

  10. 分布式环境下常见的应用场景

Redis学习路线思维导图

参考学习资料:Java核心知识点整理

JVM,集合,HTTP网络,多线程并发,JAVA基础,Spring,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,消息中间件,MongoDB,设计模式,负载均衡,数据库,一致性哈希,算法,数据结构,加密算法,分布式缓存,Netty,Linux,Tomcat,Nginx,Redis等

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到