
java
文章平均质量分 85
java干货仓库
公众号和名字一样,关注公众号每天都会推送一篇大厂面试题资讯
展开
-
响应式编程:SubmissionPublisher的使用
是 Java 9 引入的响应式编程 API()的核心实现类,它实现了接口,提供了发布元素给多个订阅者的能力,基于和,是响应式编程的基础组件。原创 2025-06-03 13:30:44 · 226 阅读 · 0 评论 -
Java 8+ 内置函数式接口:从入门到精通
Java 8函数式接口是函数式编程的核心组成部分,包含四大核心接口:Consumer消费型接口用于执行操作无返回值、Supplier供给型接口用于生成值、Function函数型接口用于转换数据类型、Predicate断言型接口用于条件判断。这些接口支持lambda表达式和方法引用,通过@FunctionalInterface注解标识,可应用于集合遍历、对象创建、类型转换等场景,显著提升代码简洁性和可读性。文章详细解析了每个接口的基本用法、链式调用和实际应用案例,展现了Java函数式编程的现代特性。原创 2025-06-03 12:15:56 · 602 阅读 · 0 评论 -
Spring Boot与Record:简化数据模型的完美组合
Record 是 Java 14 引入的一种特殊类,用于表示不可变的数据载体。它是一种声明式所有字段的私有 final 属性匹配字段的规范构造函数所有字段的访问器方法(getterequals()hashCode()和toString()方法// 实体类// DTO虽然 Record 是不可变的,但可以添加额外的方法和构造函数。// 计算面积的方法// 自定义构造函数throw new IllegalArgumentException("宽和高必须为正数");原创 2025-05-22 15:00:02 · 638 阅读 · 0 评论 -
Spring WebClient 完全指南:从入门到精通
非阻塞与响应式:基于 Reactor 框架,支持异步非阻塞 I/O,适合高并发场景函数式 API:提供流畅的链式调用,代码更简洁易读支持多种 HTTP 客户端:可基于 Reactor Netty、Apache HttpClient 等不同底层实现与 Spring 生态深度集成:无缝集成 Spring Security、Spring Cloud 等Spring WebClient 作为现代响应式 HTTP 客户端,为微服务通信提供了高效、灵活的解决方案。原创 2025-05-22 13:34:22 · 640 阅读 · 0 评论 -
深入探索 Reactor 中的 Flux:构建响应式数据流的基石
Flux是 Reactor 框架中用于表示异步数据流的核心类,它可以发送 0 到多个元素,并且支持发送完成信号和错误信号。与传统的集合不同,Flux是惰性求值的,只有当有订阅者订阅时,数据流才会开始执行,这种特性使得它在处理大量数据和异步操作时具有高效性和低资源消耗的优势。同时,Flux遵循响应式流规范,能够很好地处理背压(Backpressure)问题,确保上下游处理速度不一致时,数据不会丢失或堆积,从而保证系统的稳定性。Flux。原创 2025-05-21 11:09:20 · 625 阅读 · 0 评论 -
深入理解 Reactor 中的 Sink:构建响应式数据流的关键
Sink是 Reactor 框架中用于向响应式流(Flux或Mono)推送元素、错误或完成信号的接口。它就像是数据流的“源头”,开发者可以通过它主动控制流的内容和状态。根据不同的使用场景,Reactor 提供了多种类型的Sink,主要包括Many和OneMany类型:适用于向Flux推送多个元素,支持多订阅者场景,例如Sinks.Many。One类型:用于向Mono推送单个元素、错误或完成信号,对应Sinks.One。Sink。原创 2025-05-21 11:02:47 · 470 阅读 · 0 评论 -
Redis 消息队列的优劣势
Redis 作为消息队列与 RocketMQ 等专业消息中间件相比,在特定场景下具有独特优势,但也存在明显局限。原创 2025-05-12 15:21:19 · 899 阅读 · 0 评论 -
JDK 8 到 JDK 17的新特性有哪些?
Java 引入了许多重要的新特性。迁移,建议逐步升级,重点关注。原创 2025-05-06 16:09:56 · 566 阅读 · 0 评论 -
手写一个简易的线程池
使用// 任务队列// 工作线程数组// 线程池关闭标志// 构造函数// 初始化工作线程i++) {@Overridewhile (!try {// 从任务队列中获取任务task.run();// 执行任务// 线程被中断,退出循环break;原创 2025-03-19 23:20:38 · 342 阅读 · 0 评论 -
Redis 热key问题怎么解决?
热 Key(Hot Key)是指被高频访问的某个或多个 Key,导致单个 Redis 节点负载过高,可能引发性能瓶颈甚至服务崩溃。原创 2025-04-06 23:14:28 · 1225 阅读 · 0 评论 -
Seata TCC模式是怎么实现的?
TCC(Try-Confirm-Cancel)是 Seata 提供的分布式事务解决方案之一,适用于。Seata 的 TCC 模式依赖。原创 2025-04-06 23:01:42 · 687 阅读 · 0 评论 -
线程池线程存活判断和回收底层实现原理?
以下是线程池回收空闲线程的详细流程和底层原理(以。调用processWorkerExit()和线程数参数,可以平衡资源利用率和性能。线程池中线程的回收机制主要依赖于。移除线程引用,终止线程。原创 2025-04-02 22:04:30 · 768 阅读 · 0 评论 -
Timer的底层实现原理?
是 Java 中用于定时任务调度的基础工具类,其底层实现基于。插入任务(按时间排序)wait(剩余时间)原创 2025-04-02 21:42:44 · 609 阅读 · 0 评论 -
为什么String要定义成不可变的?
的,Java 的字符串处理将面临安全性、性能和一致性的多重挑战。类可被继承,子类仍可能通过其他方法(如反射或覆盖)修改。类被设计为 final。原创 2025-03-25 22:39:16 · 443 阅读 · 0 评论 -
ConcurrentHashMap的size是怎么保证线程安全的
方法是一个复杂但高效的设计,它通过多种技术手段来保证线程安全,同时尽量减少性能开销。如果需要更深入的源码分析或示例代码,我可以进一步提供!方法会遍历所有桶,并累加每个桶中的元素数量。在 JDK 1.8 中,内部将数据存储在多个。为了避免多线程同时更新。原创 2025-03-23 15:39:34 · 864 阅读 · 0 评论 -
LongAdder 的底层实现原理
的核心思想是通过分散竞争来减少线程之间的冲突,从而提升性能。是 Java 中用于高效统计并发计数的一个类,它在高并发场景下比。如果需要更深入的源码分析或示例代码,我可以进一步提供!是一个简单的类,包含一个。原创 2025-03-23 15:36:53 · 425 阅读 · 0 评论 -
SynchronousQueue 底层实现原理是啥?是用来干啥的?
的底层实现和用途,可以更好地利用它解决线程间数据传递的问题。,用于在两个线程之间直接传递数据。是 Java 并发包 (原创 2025-03-20 21:38:07 · 429 阅读 · 0 评论 -
讲讲synchronized的锁优化?
JVM 对。原创 2025-03-19 10:02:06 · 595 阅读 · 0 评论 -
CompletableFuture实现原理?
的实现原理基于任务链和回调机制,通过Completion对象和栈结构管理任务的依赖关系。它提供了强大的异步编程能力,但也需要谨慎使用,避免回调地狱和调试困难的问题。通过合理使用,可以显著提升程序的并发性能和响应速度。原创 2025-03-18 18:35:17 · 472 阅读 · 0 评论