java教程技术文章
-
ServerSocket对象能够用来搭建服务端程序,但光有服务端,通信这件事其实还跑不起来,还得有客户端配合完成交互。为了解决这个问题,JDK专门提供了一个Socket类,用来实现TCP客户端程序。查阅API文档会发现,Socket类同样准备了多个构造方法,下面就围绕其中几种常用构造方法展开说明。268 收藏 -
StampedLock 的乐观读不是无锁读取。本文用一个读多写少的库存快照示例,对比 ReentrantReadWriteLock 与 StampedLock,说明 validate、回退读锁、写锁转换和中断边界,帮助你决定是否值得替换现有锁。264 收藏 -
用 Spring Boot 3 的 ProblemDetail 统一批量导入接口错误响应,并把校验错误准确映射回 Excel 行号,兼顾部分成功、事务边界与前端展示。258 收藏 -
文章 · java教程 | 4天前 | 反序列化 · Java教程 · 安全编程 · Java IO · java Java安全 ObjectInputFilter 反序列化过滤 Serialization Filter
Java ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。257 收藏 -
文章 · java教程 | 1星期前 | Stream · Java教程 · 性能边界 · mapMulti · flatMap · Java mapMulti Stream flatMap Java Stream 条件展开 Java 16
Java Stream 的 mapMulti 适合把一个元素展开为零个或少量结果,尤其适用于带条件分支的解析和提取。本文用订单标签解析示例说明它与 flatMap 的选择、泛型推断、Consumer 生命周期和验收边界。250 收藏 -
支付渠道类型一多,enum 加 switch 容易把新增渠道遗漏在多个分支里。本文用 Java sealed interface 建模支付路由,和 enum + switch 做边界对比,给出兼容扩展、测试覆盖和上线选择建议。242 收藏 -
Webhook 接口只校验一个固定密钥还不够,泄露过的请求可能被再次发送。本文从零做一个 Java 签名校验小服务,用时间戳、HMAC-SHA256 和请求体摘要判断请求是否可信,并用 curl 验收通过、过期和篡改三种结果。215 收藏 -
Java 批量导出订单报表时,直接把查询结果收集到 List 再写 Excel,很容易在大数据量下触发 Full GC 甚至 OOM。本文从一次导出任务的架构改造出发,拆解数据库游标读取、分片文件写入、任务状态保存和 Range 续传的配合方式。200 收藏 -
文章 · java教程 | 4天前 | 面向对象 · Java教程 · Java 25 · 语言特性 · 构造器 · Java 25 JEP 513 Flexible Constructor Bodies super 构造器 Java 构造器
Java 25 将 Flexible Constructor Bodies 变成永久特性,构造器可以在 super() 或 this() 前执行不依赖实例的校验和参数准备。本文用订单金额校验和继承构造器示例,讲清构造器链迁移时可写什么、不能引用什么,以及从 Java 24 预览代码升级时要检查的边界。200 收藏 -
JDBC(Ja va Database Connectivity,Ja va数据库连接),它是一套用于执行SQL语句的Ja va API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作。 不同数据库在底层处理数据的机制并不一样。像 My199 收藏 -
Ja vaFX 类库是从 JDK 7u6 开始才被正式包含进来的,而目前较新且相对稳定的 Ja vaFX 体系,与 JDK 8 的特性结合得更紧密。也正因为如此,运行 Ja vaFX 应用时,更推荐在系统里安装 JDK 8 或更高版本;如果仍然使用较低版本的 JDK,往往还得额外导入 jfxrt.j189 收藏 -
文章 · java教程 | 4天前 | 反序列化 · Java教程 · 安全编程 · Java IO · java Java安全 ObjectInputFilter 反序列化过滤 Serialization Filter
Java ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。186 收藏 -
文章 · java教程 | 3天前 | 密码学 · Java教程 · 安全编程 · Java 25 · 密钥派生 · aes Java 25 KDF HKDF JEP 510 HKDFParameterSpec
Java 25 正式交付 Key Derivation Function API,可用 HKDF 从输入密钥材料派生指定长度的 AES 密钥。本文用 javax.crypto.KDF 和 HKDFParameterSpec 拆解 extract、expand、salt、info 的参数边界,并给出长度和结果验收方法。183 收藏 -
在早期JDK1.0发布时,Sun公司就为GUI开发提供了一套基础类库,这套类库被称为AWT(Abstract Window Toolkit),即抽象窗口工具包。AWT的起初设想就是为了统一实现不同操作系统的图像界面,但问题是,不同操作系统图形库的功能可能不一样,在一个平台上存在的功能在另外一个平台上179 收藏 -
在学习线程之前,需要先了解一下什么是进程。在一个操作系统中,每个独立执行的程序都可称之为一个进程,也就是“正在运行的程序”。例如同时运行的QQ、360安全卫士、Eclipse开发工具等。 在多任务操作系统中(即能同时执行多个应用程序),可以查看当前系统中所有的进程,这里以Windows操作系统为例,178 收藏