最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
还有更多学习笔记面试资料也分享如下:
以下都是面试中经常会被考察到的知识点的整理,不够完整,但大部分都是常见面试题。只有问题没有参考答案,但是,请允许我说但是,对于下面这些问题,我这里还是有一份参考学习笔记文档和面经试题解析的在文末分享,需要各位小伙伴下来逐一学习!
java 基础
=======
======================================================================
集合分为两大块:
ListArrayList 与 LinkedList 的实现和区别 Map
1.HashMap:
2.LinkedHashMap:
3.TreeMap:
SetSet 基本上都是由对应的 map 实现,简单看看就好
常见问题
====
-
hashmap 如何解决 hash 冲突,为什么 hashmap 中的链表需要转成红黑树?
-
hashmap 什么时候会触发扩容?
-
jdk1.8 之前并发操作 hashmap 时为什么会有死循环的问题?
-
hashmap 扩容时每个 entry 需要再计算一次 hash 吗?
-
hashmap 的数组长度为什么要保证是 2 的幂?
-
如何用 LinkedHashMap 实现 LRU?
-
如何用 TreeMap 实现一致性 hash?
线程安全的集合
=======
Collections.synchronized 了解其实现原理 CopyOnWriteArrayList 了解写时复制机制、了解其适用场景、思考为什么没有 ConcurrentArrayListConcurrentHashMap 了解实现原理、扩容时做的优化、与 HashTable 对比。BlockingQueue 了解 LinkedBlockingQueue、ArrayBlockingQueue、DelayQueue、SynchronousQueue
常见问题
====
-
ConcurrentHashMap 是如何在保证并发安全的同时提高性能?
-
ConcurrentHashMap 是如何让多线程同时参与扩容?
-
LinkedBlockingQueue、DelayQueue 是如何实现的?
-
CopyOnWriteArrayList 是如何保证线程安全的?
Java 并发
=======
synchronized 了解偏向锁、轻量级锁、重量级锁的概念以及升级机制、以及和 ReentrantLock 的区别 CAS 了解 AtomicInteger 实现原理、CAS 适用场景、如何实现乐观锁 AQS 了解 AQS 内部实现、及依靠 AQS 的同步类比如 ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier 等的实现 ThreadLocal 了解 ThreadLocal 使用场景和内部实现 ThreadPoolExecutor 了解线程池的工作原理以及几个重要参数的设置
常见问题
-
synchronized 与 ReentrantLock 的区别?
-
乐观锁和悲观锁的区别?
-
如何实现一个乐观锁?
-
AQS 是如何唤醒下一个线程的?
-
ReentrantLock 如何实现公平和非公平锁是如何实现?
-
CountDownLatch 和 CyclicBarrier 的区别?各自适用于什么场景?
-
适用 ThreadLocal 时要注意什么?比如说内存泄漏?
-
说一说往线程池里提交一个任务会发生什么?
-
线程池的几个参数如何设置?
-
线程池的非核心线程什么时候会被释放?
-
如何排查死锁?
类加载
===
了解双亲委派机制
常见问题
====
-
双亲委派机制的作用?
-
Tomcat 的 classloader 结构
-
如何自己实现一个 classloader 打破双亲委派
IO
==
了解 BIO 和 NIO 的区别、了解多路复用机制
常见问题
-
同步阻塞、同步非阻塞、异步的区别?
-
select、poll、eopll 的区别?
-
java NIO 与 BIO 的区别?
-
reactor 线程模型是什么?
JVM
===
GC:
**内存区域:**能说清 jvm 的内存划分
常见问题
====
-
CMS GC 回收分为哪几个阶段?分别做了什么事情?
-
CMS 有哪些重要参数?
-
Concurrent Model Failure 和 ParNew promotion failed 什么情况下会发生?
-
CMS 的优缺点?
-
有做过哪些 GC 调优?
-
为什么要划分成年轻代和老年代?
-
年轻代为什么被划分成 eden、survivor 区域?
-
年轻代为什么采用的是复制算法?
-
老年代为什么采用的是标记清除、标记整理算法
-
什么情况下使用堆外内存?要注意些什么?
-
堆外内存如何被回收?
-
jvm 内存区域划分是怎样的?
中间件、存储、以及其他框架
=============
Spring:bean 的生命周期、循环依赖问题、spring cloud(如项目中有用过)、AOP 的实现、spring 事务传播
常见问题
====
-
java 动态代理和 cglib 动态代理的区别(经常结合 spring 一起问所以就放这里了)
-
spring 中 bean 的生命周期是怎样的?
-
属性注入和构造器注入哪种会有循环依赖的问题?
Dubbo(或其他 Rpc 框架)
=================
了解一个常用 RPC 框架如 Dubbo 的实现:服务发现、路由、异步调用、限流降级、失败重试
常见问题
====
-
Dubbo 如何做负载均衡?
-
Dubbo 如何做限流降级?
-
Dubbo 如何优雅的下线服务?
-
Dubbo 如何实现异步调用的?
RocketMq(或其他消息中间件)
了解一个常用消息中间件如 RocketMq 的实现:如何保证高可用和高吞吐、消息顺序、重复消费、事务消息、延迟消息、死信队列
常见问题
-
RocketMq 如何保证高可用的?
-
RocketMq 如何保证高吞吐的?
-
RocketMq 的消息是有序的吗?
-
RocketMq 的消息局部顺序是如何保证的?
-
RocketMq 事务消息的实现机制?
-
RocketMq 会有重复消费的问题吗?如何解决?
-
RocketMq 支持什么级别的延迟消息?如何实现的?
-
RocketMq 是推模型还是拉模型?
-
Consumer 的负载均衡是怎么样的?
Redis(或其他缓存系统)
==============
redis 工作模型、redis 持久化、redis 过期淘汰机制、redis 分布式集群的常见形式、分布式锁、缓存击穿、缓存雪崩、缓存一致性问题
最后
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
[外链图片转存中…(img-5QnJ6G7I-1715791001996)]