java教程技术文章
-
周期任务看起来每分钟执行一次,实际却可能因单次执行超时、未捕获异常或重复创建调度器而失控。本文拆解固定频率调度下的任务不重叠、异常终止和恢复路径,给出可验证的 Java 写法。387 收藏 -
Java 虚拟线程适合高并发、以 HTTP、JDBC 等 I/O 等待为主的任务编排,但不能替代 CPU 并行、连接池和下游限流。本文用代码和边界表说明如何选择。387 收藏 -
Java Pattern.splitAsStream 会丢弃末尾空字段,且流式终结操作期间不能修改输入。本文用可运行代码解释这个行为、输入边界和安全写法。385 收藏 -
文章 · java教程 | 1星期前 | 网络编程 · Java · HTTP客户端 · 超时处理 · 请求体 · java httpclient HttpRequest expectContinue 100 Continue 大请求
Java HttpRequest.Builder 的 expectContinue(true) 可以让服务器先确认是否接收请求,再发送较大的请求体。文章结合 BodyPublisher、100 Continue、错误响应和 timeout,说明它适合什么场景、哪里容易误判,以及如何设计可核对的请求边界。384 收藏 -
Java Optional 的 orElse 会先计算默认参数,所以即使 Optional 有值,默认方法也可能执行。本文用最小示例解释 orElse 与 orElseGet 的求值时机和选择边界。382 收藏 -
用一个可复查的缓存刷新场景,说明 Java ReentrantReadWriteLock 从写锁降级到读锁的正确顺序、异常释放边界与验证方法。381 收藏 -
Java 插件需要独立的类加载边界时,可以用 ModuleFinder 和 Configuration 解析模块图,再用 defineModulesWithManyLoaders 为不同插件模块建立独立 ClassLoader。本文说明父层、exports、可读性和常见加载失败的排查方法。381 收藏 -
开发 TCP 程序时,第一步通常都是先把服务器端搭起来。JDK 的 ja va.net 包里专门提供了一个 ServerSocket 类,它的实例对象就可以用来实现服务器端程序。查一下 API 文档就会发现,ServerSocket 类提供了不止一种构造方法,下面就按这个思路,把这些构造方法逐一讲清378 收藏 -
并行流不是把线程数调大就会变快。本文用同一批数据对比串行流与并行流,解释 ForkJoinPool.commonPool 的参与方式、任务粒度、共享资源和压测边界,帮助你在真实服务里做出可复核的选择。378 收藏 -
文章 · java教程 | 1星期前 | Java教程 · MethodHandles · 模块系统 · java 私有成员 privateLookupIn MethodHandles.Lookup 模块边界
Java MethodHandles.Lookup 不是绕过权限的万能钥匙。本文用 privateLookupIn、findVirtual 和 lookupModes 拆开私有成员访问的调用链,并验证同模块、跨模块和模块未开放时的边界。376 收藏 -
Java 25 正式加入 import module 声明,可以按模块导入其导出的顶层类型,减少多个通配包导入。本文用 java.base 示例说明可见范围、命名冲突和 classpath 场景下的边界。373 收藏 -
Files.walk 返回的 Stream可能持有打开目录,遍历结束不代表资源已经及时释放。本文说明显式关闭的原因、正确写法,以及 IOException 与 UncheckedIOException 的处理边界。 373 收藏 -
在多任务操作系统中,每个运行的程序都是一个进程,用来执行不同的任务,而在一个进程中还可以有多个执行单元同时运行,来同时完成一个或多个程序任务,这些执行单元可以看做程序执行的一条条线索,被称为线程。操作系统中的每一个进程中都至少存在一个线程,当一个Ja va程序启动时,就会产生一个进程,该进程中会默认372 收藏 -
文章 · java教程 | 1个月前 | 文件处理 · 配置管理 · Java · 命令行工具 · nio · Java Files.mismatch 配置目录校验 Files.mismatch Java文件对比
部署前想确认两份配置目录是否完全一致,不必先引入第三方 diff 库。本文用 Java NIO 的 Files.mismatch 做一个小型目录核对工具,处理参数校验、相对路径、二进制差异、报告输出和退出状态,最后给出可复查的本地运行方式。371 收藏 -
文章 · java教程 | 1星期前 | Java · 人工智能 · 工具调用 · Spring AI · java 工具调用 会话隔离 Spring AI ToolSearchToolCallingAdvisor
Spring AI 2.0 的 ToolSearchToolCallingAdvisor 会按会话索引工具。本文从工具全量暴露的排查现场出发,说明 session ID、工具索引和 ChatClient 之间的边界,并给出 Java 配置示例与核对清单。367 收藏