- 博客(11)
- 收藏
- 关注
原创 消息队列常见面试题目
Java生态友好,文档丰富,运维成本低。2. 高可用性与可靠性,基于 主从架构(Master-Slave) 和 多副本同步机制,支持自动故障切换(定义:Topic 是消息的逻辑分类,生产者发送消息到指定 Topic,消费者订阅 Topic 以接收消息。1, 高吞吐与低延迟,单机支持 10万级 TPS 的吞吐量,适用于电商、金融等高并发场景。3,事务消息支持,提供完整的事务消息机制(两阶段提交),确保本地事务与消息发送的原子性。
2025-06-06 00:30:00
821
原创 Redis基本总结+面试常问题目
Redis(Remote Dictionary Server) 是一个开源的、基于内存的 键值存储数据库,同时支持持久化到磁盘。它被设计为高性能的 数据结构服务器,支持多种数据结构(如字符串、哈希、列表、集合等),并提供丰富的操作命令。Redis 通常用于缓存、消息队列、实时数据分析等场景。数据结构存储结构特点常用命令应用场景String二进制安全的字符串可存储文本、数字、二进制数据SETGETINCRDECRAPPEND缓存、计数器、分布式锁List。
2025-06-05 00:30:00
1719
原创 Java事务失效的场景
场景原因修复方案自调用绕过代理对象拆分到另一个类或使用代理对象异常未抛出未触发回滚规则抛出异常或配置非public方法代理无法拦截改为public方法传播行为错误嵌套事务未正确隔离拆分方法到不同类数据库引擎不支持MyISAM 无事务支持改用 InnoDB多数据源未指定管理器默认使用主数据源显式指定事务管理器异步方法混合事务上下文丢失在异步方法内开启事务未启用事务管理缺少添加注解启用事务管理。
2025-06-04 00:30:00
939
原创 Java回调函数
回调是一种常见的编程模式,允许一个函数在特定事件或任务完成后,调用另一个预先定义的函数。在Java中,由于不支持函数指针,通常通过接口或Lambda表达式实现回调。核心思想:定义回调接口:声明回调方法。传递接口实现:将回调逻辑传递给调用方。触发回调:在特定时机(如任务完成、事件发生)调用回调方法。场景用回调用替代方案简单异步通知直接易用过度设计多步骤异步任务回调地狱需要统一错误处理冗余代码异常传播链UI 事件监听匿名类或 Lambda无需替代。
2025-06-03 01:00:00
649
原创 JDK21中的虚拟线程?
虚拟线程是 JDK 21 引入的一种轻量级线程,由 JVM 直接管理,而非依赖操作系统线程(平台线程)。每个虚拟线程在 JVM 层面对应一个轻量级的任务单元,底层由少量平台线程(称为“载体线程”)调度执行。虚拟线程的创建和切换成本极低,适用于 高并发 I/O 密集型 任务。JDK 21的虚拟线程彻底重塑了Java的并发编程范式。这种创新的线程模型采用轻量级的用户态调度机制,让海量虚拟线程高效运行在少量操作系统线程之上,不仅大幅减少了线程切换的开销,更突破了传统线程模型的并发瓶颈。
2025-06-02 01:00:00
761
原创 Java代理
静态代理是一种在编译期确定代理关系的设计模式,通过代理类增强目标类的功能,而不直接修改目标类的代码。其实就是让代理类持有目标类的实例,然后在方法类中调用目标对象。JDK 动态代理是 Java 提供的运行时动态生成代理类的机制,基于接口和反射实现,无需手动编写代理类,比静态代理更灵活。注意,jdk动态代理必须实现接口,不然你就使用CGLIB(下面会介绍)。而且,代理类是在运行的时候动态生成的。CGLIB是一个强大的高性能代码生成库,它可以在运行时扩展Java类和实现接口。
2025-05-10 17:16:06
814
原创 面试官:你来介绍和手写布隆过滤器
布隆过滤器是一种高效的概率型数据结构,主要用于判断某个元素是否存在于集合中。与传统的数据结构相比,布隆过滤器在空间效率和查询速度上具有显著优势,但其代价是存在一定的误判率。布隆过滤器最早由 Burton Howard Bloom 在1970年提出,广泛应用于网络爬虫、数据库系统、缓存系统等领域。例如,Google Chrome 浏览器就曾使用布隆过滤器来检测恶意网址,而 Redis 也通过布隆过滤器插件支持高效的去重查询。
2025-05-06 19:09:04
495
原创 如何关闭已超时的订单 ?
我们逛淘宝的时候,遇到想要的商品,支付的时候,会有时间的限制,我们在时间限制里面完成支付,就会出订单号。2,实现复杂度比较高,会涉及分布式调度,MQ,高存储(redis)等,面临分布式锁,任务分片,网络抖动,节点宕机一系列问题,并且运维复杂度增加。3,基本上面思路已经很完善,假设还想再优化一下,就是服务端接收到关闭的请求,二次校验,校验当前订单的状态,实际超时时间。1,脏数据有滞留现象,若用户长期不访问客户端,超时订单可能未被及时关闭,影响准确性。2,基于时间轮、延迟队列等机制,可支撑千万级任务调度。
2025-05-05 00:00:20
1489
原创 maven找不到依赖项?解决方法在这里
mvn install:install-file -Dfile=上面我下载在文件中jar包的问题 -DgroupId=最上面的groupId -DartifactId=最上面的artifactId -Dversion=最上面的version -Dpackaging=jar。注意事项 1,你找到的依赖,就是下面两个红色的箭头,要和上图的一致,然后再点击View All。我这里的是 D:\newJar\guava-32.1.3-jre.jar。然后在文件里面找到下载的jar包,记住jar包的位置,待会有用的。
2025-04-05 00:00:00
1184
原创 AOP通知类型直观讲解
通知类型触发时机能否阻止方法执行能否获取返回值/异常典型场景Before方法执行前可抛出异常阻止无权限校验、日志记录After方法执行后(无论成功与否)不无资源清理方法成功返回后不可获取返回值成功通知、结果处理方法抛出异常后不可获取异常异常处理、错误通知Around包裹整个方法执行过程可控制是否执行可控制输入输出性能监控、事务管理注意:笔者水平有限,如有错误,欢迎指正。
2025-03-31 03:15:00
452
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人