蚂蚁二面、京东三面后,我总结了大厂Java高频面试真题及解析:Java基础+Spring+算法+并发+JVM+Redis+MySQL

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

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

Java集合

  1. ArrayList 和 Vector 的区别。
  2. 说说 ArrayList,Vector, LinkedList 的存储性能和特性。
  3. 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?
  4. hashmap 的数据结构。
  5. HashMap 的工作原理是什么?
  6. Hashmap 什么时候进行扩容呢?
  7. List、Map、Set 三个接口,存取元素时,各有什么特点?
  8. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们有何区别?
  9. 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?
  10. heap 和 stack 有什么区别。
  11. Java 集合类框架的基本接口有哪些?
  12. HashSet 和 TreeSet 有什么区别?
  13. HashSet 的底层实现是什么?
  14. LinkedHashMap 的实现原理?
  15. 为什么集合类没有实现 Cloneable 和 Serializable 接口?
  16. 什么是迭代器 (Iterator)?
  17. Iterator 和 ListIterator 的区别是什么?
  18. 数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不是 ArrayList?
  19. Java 集合类框架的最佳实践有哪些?
  20. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()?它们有何区别?
  21. Comparable 和 Comparator 接口是干什么的?列出它们的区别
  22. Collection 和 Collections 的区别。
image

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. 类加载器双亲委派模型机制?
image

并发编程

  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 需要注意些什么?
image

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框架中都用到了哪些设计模式?

image

Redis

  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 最适合的场景
image

微服务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?
image

后面还有关于 springMVC,netty,网络,zookeeper,kafka,rabbitMQ,数据库,设计模式等,就不在这里一一给大家展示了,

需要这些面试资料的读者朋友可以帮忙点赞后,简信私信我【面试资料】就可以了(一定要记得关注我,不然没办法回复陌生人私信)。希望大家都能够拿到一个心怡的offer。


特别推荐一个分享后端架构+算法的优质内容,还没关注的小伙伴,可以点击免费获取:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266