三面阿里总结!我发现面试官还是喜欢问这些【Spring+JVM+Redis+MySQL】附答案解析

605 阅读10分钟

前言

对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的java开发朋友跳槽面试,**无论一面还是二面,都开始考验一个Java程序员的技术功底和基础。**对源码解读和核心原理理解也是成了加分项,特别是对 Java 的一些核心基础知识点掌握的不够或者没有体系方向的朋友面试也成了一个苦恼的事情。

今天在这分享大厂Java面试常问的问题包括JVM、常用的算法和数据结构,redis缓存,分布式,Spring,微服务等。正所谓知己知彼,只有体系知识巩固,面对不断更新的技术才能快速掌握,同时在面试、工作中也更能脱颖而出!

外包Java后端开发三年,年底跳槽两个月如何应付面试?

2021最新100道Java面试题!【附答案解析和思维导图总结】

2020年终总结:美团+滴滴+网易+拼多多Java后端面经总结,最终上岸网易!

JVM与调优

蚂蚁金服内部解密的JVM调优笔记和案例分享实战,收藏学完后我的工资翻了一倍!

  1. Java 类加载过程?
  2. 描述一下 JVM 加载 Class 文件的原理机制?
  3. Java 内存分配。
  4. GC 是什么? 为什么要有 GC?
  5. 简述 Java 垃圾回收机制
  6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  7. 垃圾回收的优点和原理。并考虑 2 种回收机制
  8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  9. Java 中会存在内存泄漏吗,请简单描述
  10. 深拷贝和浅拷贝。
  11. System.gc() 和 Runtime.gc() 会做什么事情?
  12. finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
  13. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
  14. 什么是分布式垃圾回收(DGC)?它是如何工作的?
  15. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
  16. 在 Java 中,对象什么时候可以被垃圾回收?
  17. 简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。
  18. JVM 的永久代中会发生垃圾回收么?
  19. Java 中垃圾收集的方法有哪些?
  20. 什么是类加载器,类加载器有哪些?
  21. 类加载器双亲委派模型机制?

并发编程

工作三年 性能调优没有学好 让我和阿里offer直接擦肩而过~

  1. Synchronized 用过吗,其原理是什么?
  2. 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?
  3. 什么是可重入性,为什么说 Synchronized 是可重入锁?
  4. JVM 对 Java 的原生锁做了哪些优化?48
  5. 为什么说 Synchronized 是非公平锁?49
  6. 什么是锁消除和锁粗化?49
  7. 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS,它有什么特性?
  8. 乐观锁一定就是好的吗?
  9. 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?
  10. 那么请谈谈 AQS 框架是怎么回事儿?
  11. 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。
  12. ReentrantLock 是如何实现可重入性的?
  13. 除了 ReetrantLock,你还接触过 JUC 中的哪些并发工具?
  14. 请谈谈 ReadWriteLock 和 StampedLock。
  15. 如何让 Java 的线程彼此同步?你了解过哪些同步器?请分别介绍下。
  16. CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?
  17. Java 线程池相关问题
  18. Java 中的线程池是如何实现的?
  19. 创建线程池的几个核心构造参数?
  20. 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
  21. 既然提到可以通过配置不同参数创建出不同的线程池,那么 Java 中默认实现好的线程池又有哪些呢?请比较它们的异同
  22. 如何在 Java 线程池中提交线程?
  23. 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
  24. 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
  25. 既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?
  26. 请对比下 volatile 对比 Synchronized 的异同。
  27. 请谈谈 ThreadLocal 是怎么解决并发安全的?
  28. 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?

Spring

全网最全spring全家桶面试题分享

1、什么是Spring框架? Spring框架有哪些主要模块?
2、使用Spring框架能带来哪些好处?
3、什么是控制反转(IOC)?什么是依赖注入?
4、请解释下Spring 框架中的IoC?
5、BeanFactory 和ApplicationContext有什么区别?
6.Spring有几种配置方式?
7、如何用基于XML配置的方式配置Spring ?
8、如何用基于Java配置的方式配置Spring ?
9、怎样用注解的方式配置Spring ?


10、请解释SpringBean的生命周期?
11、Spring Bean的作用域之间有什么区别?
12、什么是Spring inner beans ?
13、Spring框架中的单例Beans是线程安全的么?
14、请举例说明如何在Spring中注入一个Java Collection ?
15、如何向Spring Bean中注入一个Java.util.Properties ?
16、请解释Spring Bean的自动装配?
17、请解释自动装配模式的区别?
18、如何开启基于注解的自动装配?
19请举例解释@Required注解?
20、请举例解释@Autowired注解?
22、构造方法注入和设值注入有什么区别?
23、Spring框架中有哪些不同美型的事件?
24、FileSystemResource和ClassPathResource有何区别?
25、Spring框架中都用到了哪些设计模式?

Redis

来自蚂蚁金服内部JAVA面试宝典意外流出!

  1. 什么是redis?
  2. Reids的特点
  3. Redis支持的数据类型
  4. Redis是单进程单线程的
  5. 虚拟内存
  6. Redis锁
  7. 读写分离模型
  8. 数据分片模型
  9. Redis的回收策略
  10. 使用Redis有哪些好处?
  11. redis相比memcached有哪些优势?4
  12. redis常见性能问题和解决方案
  13. MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据245
  14. Memcache与Redis的区别都有哪些?
  15. Redis 常见的性能问题都有哪些?如何解决?
  16. Redis 最适合的场景

微服务58题(SpringBoot、SpringCloud、Dubbo)

SpringBoot面试题

  1. 什么是 Spring Boot?以及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 的目录结构是怎样的?
  11. 你如何理解 Spring Boot 中的 Starters?
  12. 如何在 Spring Boot 启动的时候运行一些特定的代码?
  13. Spring Boot 有哪几种读取配置的方式?
  14. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
  15. SpringBoot 实现热部署有哪几种方式?
  16. 你如何理解 Spring Boot 配置加载顺序?
  17. Spring Boot 如何定义多套不同环境配置?
  18. Spring Boot 可以兼容老 Spring 项目吗,如何做?
  19. 保护 Spring Boot 应用有哪些方法?
  20. Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?

Dubbo面试题

  1. Dubbo与DubboX区别
  2. Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
  3. Dubbo中有哪些角色?
  4. Dubbo在安全机制方面是如何解决的
  5. Dubbo执行流程?
  6. Dubbo支持的协议有哪些?
  7. Dubbo支持的注册中心有哪些?
  8. dubbo服务负载均衡策略?
  9. dubbo核心的配置有哪些?dubbo推荐用什么协议?
  10. dubbo连接注册中心和直连的区别
  11. dubbo通信协议dubbo协议为什么不能传大包
  12. dubbo通信协议dubbo协议为什么要消费者比提供者个数多
  13. dubbo通信协议dubbo协议为什么采用异步单一长连接
  14. dubbo通信协议dubbo协议适用范围和适用场景
  15. Spring Cloud与Dubbo的区别是什么?
  16. 什么是Dubbo?
  17. 简述Dubbo的均衡策略和集群容错模式
  18. 为什么要用 Dubbo?
  19. Dubbo 的整体架构设计有哪些分层?
  20. 默认使用的是什么通信框架,还有别的选择吗?
  21. 服务调用是阻塞的吗?
  22. 一般使用什么注册中心?还有别的选择吗?
  23. 默认使用什么序列化框架,你知道的还有哪些?
  24. 服务提供者能实现失效踢出是什么原理?
  25. 服务上线怎么不影响旧版本?
  26. 如何解决服务调用链过长的问题?
  27. 说说核心的配置有哪些?
  28. Dubbo 推荐用什么协议?
  29. 同一个服务多个注册的情况下可以直连某一个服务吗?
  30. 画一画服务注册与发现的流程图?
  31. Dubbo 集群容错有几种方案?
  32. Dubbo 服务降级,失败重试怎么做?
  33. Dubbo 使用过程中都遇到了些什么问题?
  34. Dubbo Monitor 实现原理?
  35. Dubbo 用到哪些设计模式?
  36. Dubbo 配置文件是如何加载到 Spring 中的?
  37. Dubbo SPI 和 Java SPI 区别?
  38. Dubbo 支持分布式事务吗?
  39. Dubbo 可以对结果进行缓存吗?
  40. 服务上线怎么兼容旧版本?
  41. Dubbo 必须依赖的包有哪些?
  42. Dubbo telnet 命令能做什么?
  43. Dubbo 如何优雅停机?
  44. Dubbo 和 Spring Cloud 的区别?
  45. 你还了解别的分布式框架吗?

SpringCloud面试题

  1. 什么是 Spring Cloud?
  2. 使用 Spring Cloud 有什么优势?
  3. 服务注册和发现是什么意思?Spring Cloud 如何实现?
  4. Spring Cloud 和dubbo区别?
  5. SpringBoot和SpringCloud的区别?
  6. 负载平衡的意义什么?
  7. 什么是 Hystrix?它如何实现容错?
  8. 什么是 Hystrix 断路器?我们需要它吗?
  9. 什么是 Netflix Feign?它的优点是什么?
  10. 什么是 Spring Cloud Bus?我们需要它吗?
  11. Spring Cloud断路器的作用
  12. 什么是SpringCloudConfig?
  13. Spring Cloud Gateway?

总结

上面的面试题小编已经整理成文档(附答案)小编这边还整理了一些Spring Cloud与Docker微服务架构实战270多页的资料集锦,Spring Boot 学习笔记100多页,以及Spring全家桶(1187页PDF),1000道互联网大厂Java工程师面试题,关注公众号:麒麟改bug。