
面试
文章平均质量分 92
半夏の微凉
这个作者很懒,什么都没留下…
展开
-
AOP(面向切面编程详解)
AOP 通过“切面”模块化跨多个类的功能,这些功能通常与业务逻辑不直接相关。AOP 的核心概念是“切面”(Aspect)和“连接点”(Joinpoint)。切面(Aspect):一组同时横切多个类的代码,封装成一个单元。连接点(Joinpoint):程序执行的特定点,如方法的调用或执行。原创 2025-02-24 18:32:39 · 588 阅读 · 0 评论 -
RabbitMQ面试题总结
DLX,全称为,死信交换器,死信邮箱。当消息在一个队列中变成死信 () 之后,它能被重新发送到另一个交换器中,这个交换器就是 DLX,绑定 DLX 的队列就称之为死信队列。导致的死信的几种原因消息被拒() 且。消息 TTL 过期。队列满了,无法再添加。延迟队列指的是存储对应的延迟消息,消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费。原创 2025-02-17 22:18:58 · 699 阅读 · 0 评论 -
如何使用Redis实现分布式锁
通常情况下,我们一般会选择基于 Redis 或者 ZooKeeper 实现分布式锁,Redis 用的要更多一点,我这里也先以 Redis 为例介绍分布式锁的实现。不论是本地锁还是分布式锁,核心都在于“互斥”。在 Redis 中, 命令是可以帮助我们实现互斥。 即 SET if Not eXists (对应 Java 中的 方法),如果 key 不存在的话,才会设置 key 的值。如果 key 已经存在, 啥也不做。释放锁的话,直接通过 命令删除对应的 key 即可。为了防止误删到其他的锁原创 2025-02-15 16:43:53 · 1476 阅读 · 0 评论 -
为什么要使用分布式锁
分布式锁的用途:分布式系统下,不同的服务/客户端通常运行在独立的 JVM 进程上。如果多个 JVM 进程共享同一份资源的话,使用本地锁就没办法实现资源的互斥访问了。分布式锁的应该具备的条件:互斥、高可用、可重入、高性能、非阻塞。分布式锁的常见实现方式:关系型数据库比如 MySQL、分布式协调服务 ZooKeeper、分布式键值存储系统比如 Redis 、Etcd。原创 2025-02-14 21:23:15 · 556 阅读 · 0 评论 -
Java常用设计模式面试题总结(内容详细,简单易懂)
特性简单工厂模式工厂方法模式抽象工厂模式创建的产品类型一个工厂可以创建多个不同类型的产品每个工厂创建单一类型的产品每个工厂创建一系列相关产品扩展性扩展较困难,新增产品需要修改工厂类通过继承和多态扩展产品类型通过增加新的工厂扩展产品族复杂度简单,只需要一个工厂类需要多个工厂类和子类较为复杂,涉及多个工厂和产品类适用场景产品类型较少,且变化不频繁产品类型较多,且可能需要扩展需要创建多个相关或依赖的产品代码维护性产品种类增加时,工厂类会变得庞大易于维护,但需要多个工厂类。原创 2025-02-12 17:01:46 · 1315 阅读 · 0 评论 -
Java并发面试题(题目来源JavaGuide)
1. 什么是进程(Process)?进程是操作系统分配资源和调度的基本单位。它是一个程序的执行实例,包括了程序代码、程序计数器、堆栈、数据区等资源。每个进程都有独立的内存空间、文件描述符等资源。进程的特点独立性:进程是操作系统调度的基本单位,进程之间相互独立,内存空间、文件资源等是隔离的。资源开销:每个进程都有独立的内存空间,因此创建和销毁进程的开销较大。并行性:多个进程可以在多核 CPU 上并行执行。2. 什么是线程(Thread)?线程是操作系统调度的最小单位。线程是进程中的执行单元。原创 2025-02-06 16:29:28 · 643 阅读 · 0 评论 -
Java基础面试题总结(题目来源JavaGuide)
自动装箱(Autoboxing)和自动拆箱(Unboxing)是Java 5引入的特性,使得基本数据类型(intcharboolean等)和它们的包装类IntegerCharacterBoolean等)之间可以自动转换,简化代码编写。1. 自动装箱(Autoboxing)把基本数据类型自动转换成对应的包装类对象// 相当于 Integer num = Integer.valueOf(10);10是int类型,自动转换为Integer对象。底层调用方法,如果在-128 ~ 127之间,会使用缓存池。原创 2025-01-29 22:35:44 · 1182 阅读 · 0 评论 -
Java集合面试总结(题目来源JavaGuide)
问题答案为什么HashMap长度是 2 的幂?为了优化索引计算,减少哈希冲突如何计算索引?为什么用而不是% length?位运算比取模运算更快如果length不是 2 的幂,会怎样?索引分布不均,哈希冲突增加,性能下降HashMap 如何保证length是 2 的幂?方法,自动调整capacity。原创 2025-01-30 15:15:28 · 1192 阅读 · 0 评论 -
MYSQL面试题总结(题目来源JavaGuide)
SQL 标准定义了四种事务隔离级别,它们控制了事务执行时对其他事务修改数据的可见性。事务隔离级别的主要目的是平衡并发性能和数据一致性,通过设置不同的隔离级别,可以在不同场景下选择合适的并发控制策略。这四种隔离级别是:1.读未提交(Read Uncommitted)描述:这是最低的隔离级别。在该级别下,事务 A 可以读取事务 B 未提交的数据。由于可以读取到其他事务正在修改的数据,可能会导致脏读(Dirty Read)问题。问题脏读。原创 2025-02-04 18:27:46 · 1191 阅读 · 0 评论 -
Redis面试题总结(题目来源JavaGuide)
为了保证 Redis 在挂掉之后能够在重启时恢复数据,Redis 提供了持久化机制。RDB(Redis 数据库快照)和。通过这两种持久化方式,Redis 可以在系统崩溃或重启后恢复数据。1.RDB(Redis 数据库快照)RDB 是一种基于快照(snapshot)的持久化机制,它定期将 Redis 中的数据保存到磁盘上。工作原理:Redis 会定期将内存中的数据快照保存到磁盘中。默认情况下,Redis 会在满足某些条件时(如一定数量的写操作或一定时间间隔)生成 RDB 快照。生成的快照文件通常是。原创 2025-02-05 16:25:21 · 886 阅读 · 0 评论 -
JVM面试题总结(题目来源JavaGuide)
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件)。原创 2025-02-06 14:54:08 · 756 阅读 · 0 评论