java教程技术文章
-
说到TCP/IP的整体结构,传输层里有两个绕不开的高级协议:UDP和TCP。前者是User Datagram Protocol的缩写,中文通常叫用户数据报协议;后者是Transmission Control Protocol的缩写,对应的中文名称是传输控制协议。 UDP是无连接通信协议,即在数据传输348 收藏 -
UDP是一种无连接协议,换句话说,通信双方在传输数据前并不需要先建立连接。它的工作方式,其实很像货运公司在两个码头之间运送货物:货物发出和接收时,都得先装进集装箱里。UDP也是同样的道理,发送和接收的数据也需要先经过“集装箱”式的封装。为此,JDK专门提供了一个DatagramPacket类,这个类336 收藏 -
DatagramSocket用于创建发送端和接收端对象,然而在创建发送端和接收端的DatagramSocket对象时,使用的构造方法有所不同,下面对DatagramSocket类中常用的构造方法进行讲解。 ● DatagramSocket() 该构造方法用于创建发送端的DatagramSocket对306 收藏 -
TCP和UDP都能完成两台计算机之间的数据通信,而且通信双方同样都需要创建Socket对象。不过,二者在通信方式上有一个很关键的区别。UDP只有发送端和接收端之分,并不强调客户端或服务器端的角色,设备之间可以比较自由地互相发送数据;TCP则不同,它对客户端和服务器端有明确区分,通信建立时,必须先由客460 收藏 -
开发 TCP 程序时,第一步通常都是先把服务器端搭起来。JDK 的 ja va.net 包里专门提供了一个 ServerSocket 类,它的实例对象就可以用来实现服务器端程序。查一下 API 文档就会发现,ServerSocket 类提供了不止一种构造方法,下面就按这个思路,把这些构造方法逐一讲清378 收藏 -
ServerSocket对象能够用来搭建服务端程序,但光有服务端,通信这件事其实还跑不起来,还得有客户端配合完成交互。为了解决这个问题,JDK专门提供了一个Socket类,用来实现TCP客户端程序。查阅API文档会发现,Socket类同样准备了多个构造方法,下面就围绕其中几种常用构造方法展开说明。268 收藏 -
用 Spring Boot 3 的 ProblemDetail 统一批量导入接口错误响应,并把校验错误准确映射回 Excel 行号,兼顾部分成功、事务边界与前端展示。258 收藏 -
Java 11 HttpClient 的重定向策略不会自动替你处理所有跳转。本文用一个带认证头的接口场景,拆开 NEVER、NORMAL、ALWAYS 的差异,说明跨主机跳转时如何避免认证信息误带,并给出可复现的验收清单。395 收藏 -
Java 注解处理器重复生成文件时,先区分处理轮次、来源元素和输出路径。本文用 Filer、RoundEnvironment 与 Messager 组织一个可复查的生成流程。300 收藏 -
文章 · java教程 | 2星期前 | 精度 · Java教程 · BigDecimal · 金额计算 · 异常排查 · 精度 ArithmeticException 金额计算 RoundingMode Java BigDecimal.divide
Java BigDecimal.divide 在除不尽时会抛 ArithmeticException。本文从 10 除 3 的金额分摊场景出发,拆解精确除法、scale、RoundingMode 和零除边界,并给出可复现的验收测试。455 收藏 -
文章 · java教程 | 2星期前 | 密码学 · 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 收藏 -
文章 · java教程 | 2星期前 | Java教程 · Java 25 · 语言特性 · 模式匹配 · 代码实践 · Switch instanceof Java 25 原始类型模式 JEP 507 when
Java 25 的 JEP 507 第三次预览让原始类型进入 instanceof、switch 和模式匹配。本文用数值路由场景拆解 float、double、int 模式与 when 守卫,说明数值提升、null 边界、预览参数和升级验收方法。315 收藏 -
文章 · java教程 | 2星期前 | 命令行工具 · Java教程 · Java 25 · 语言特性 · 入门实践 · Java 25 Compact Source Files instance main JEP 512 java.lang.IO
Java 25 正式交付 Compact Source Files 和 instance main,单文件小工具可以省掉显式 class、static 与 String[] 参数,同时仍使用 java、javac 运行。本文从一个可运行的命令行小程序开始,核对 java.lang.IO、自动导入、参数入口和迁移回普通类时的边界。478 收藏 -
文章 · java教程 | 2星期前 | 面向对象 · Java教程 · Java 25 · 语言特性 · 构造器 · Java 25 JEP 513 Flexible Constructor Bodies super 构造器 Java 构造器
Java 25 将 Flexible Constructor Bodies 变成永久特性,构造器可以在 super() 或 this() 前执行不依赖实例的校验和参数准备。本文用订单金额校验和继承构造器示例,讲清构造器链迁移时可写什么、不能引用什么,以及从 Java 24 预览代码升级时要检查的边界。200 收藏 -
文章 · java教程 | 2星期前 | 面向对象 · Java教程 · Java 25 · 语言特性 · 构造器 · Java 25 JEP 513 Flexible Constructor Bodies super 构造器 Java 构造器
Java 25 将 Flexible Constructor Bodies 变成永久特性,构造器可以在 super() 或 this() 前执行不依赖实例的校验和参数准备。本文用订单金额校验和继承构造器示例,讲清可写什么、不能引用什么,以及从 Java 24 预览代码迁移时要检查的边界。271 收藏